Minor updates #1

Closed
tornadocontrib wants to merge 67 commits from tornadocontrib/tornado-core:main into main
36 changed files with 24107 additions and 1659 deletions
Showing only changes of commit ddf306a835 - Show all commits

2
dist/contracts.d.ts vendored

@ -1,2 +1,2 @@
export * from '@tornado/contracts';
export { Multicall, Multicall__factory, OffchainOracle, OffchainOracle__factory, OvmGasPriceOracle, OvmGasPriceOracle__factory, ReverseRecords, ReverseRecords__factory, } from './typechain';
export { Multicall, Multicall__factory, OffchainOracle, OffchainOracle__factory, OvmGasPriceOracle, OvmGasPriceOracle__factory, ReverseRecords, ReverseRecords__factory, ENSNameWrapper, ENSNameWrapper__factory, ENSRegistry, ENSRegistry__factory, ENSResolver, ENSResolver__factory, } from './typechain';

34
dist/ens.d.ts vendored Normal file

@ -0,0 +1,34 @@
import { EnsResolver, AbstractProvider, Signer } from 'ethers';
import { ENSNameWrapper, ENSRegistry, ENSResolver } from './typechain';
import { NetIdType } from './networkConfig';
export declare function encodedLabelToLabelhash(label: string): string | null;
export declare function labelhash(label: string): string;
export declare function makeLabelNodeAndParent(name: string): {
label: string;
labelhash: string;
parentNode: string;
};
export declare const EnsContracts: {
[key: NetIdType]: {
ensRegistry: string;
ensPublicResolver: string;
ensNameWrapper: string;
};
};
/**
* ENSUtils to manage on-chain registered relayers
*/
export declare class ENSUtils {
ENSRegistry?: ENSRegistry;
ENSResolver?: ENSResolver;
ENSNameWrapper?: ENSNameWrapper;
provider: AbstractProvider;
constructor(provider: AbstractProvider);
getContracts(): Promise<void>;
getOwner(name: string): Promise<string>;
unwrap(signer: Signer, name: string): Promise<import("ethers").ContractTransactionResponse>;
setSubnodeRecord(signer: Signer, name: string): Promise<import("ethers").ContractTransactionResponse>;
setText(signer: Signer, name: string, key: string, value: string): Promise<import("ethers").ContractTransactionResponse>;
getResolver(name: string): Promise<EnsResolver | null>;
getText(name: string, key: string): Promise<string | null>;
}

@ -196,7 +196,7 @@ export declare function getTovarishNetworks(registryService: BaseRegistryService
*/
export interface CachedRelayerInfo extends RelayerParams {
isRegistered?: boolean;
owner?: string;
registeredAddress?: string;
stakeBalance?: string;
hostnames: SubdomainMap;
tovarishHost?: string;

1
dist/index.d.ts vendored

@ -5,6 +5,7 @@ export * from './typechain';
export * from './batch';
export * from './deposits';
export * from './encryptedNotes';
export * from './ens';
export * from './fees';
export * from './gaszip';
export * from './idb';

3039
dist/index.js vendored

File diff suppressed because it is too large Load Diff

3034
dist/index.mjs vendored

File diff suppressed because it is too large Load Diff

@ -102111,6 +102111,9 @@ function numberFormatter(num, digits = 3) {
const item = lookup.slice().reverse().find((item2) => Number(num) >= item2.value);
return item ? (Number(num) / item.value).toFixed(digits).replace(regexp, "").concat(item.symbol) : "0";
}
function isHex(value) {
return /^0x[0-9a-fA-F]*$/.test(value);
}
;// ./src/merkleTreeWorker.ts

6405
dist/tornado.umd.js vendored

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

847
dist/typechain/ENSNameWrapper.d.ts vendored Normal file

@ -0,0 +1,847 @@
import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers";
import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "./common";
export interface ENSNameWrapperInterface extends Interface {
getFunction(nameOrSignature: "_tokens" | "allFusesBurned" | "approve" | "balanceOf" | "balanceOfBatch" | "canExtendSubnames" | "canModifyName" | "controllers" | "ens" | "extendExpiry" | "getApproved" | "getData" | "isApprovedForAll" | "isWrapped(bytes32,bytes32)" | "isWrapped(bytes32)" | "metadataService" | "name" | "names" | "onERC721Received" | "owner" | "ownerOf" | "recoverFunds" | "registerAndWrapETH2LD" | "registrar" | "renew" | "renounceOwnership" | "safeBatchTransferFrom" | "safeTransferFrom" | "setApprovalForAll" | "setChildFuses" | "setController" | "setFuses" | "setMetadataService" | "setRecord" | "setResolver" | "setSubnodeOwner" | "setSubnodeRecord" | "setTTL" | "setUpgradeContract" | "supportsInterface" | "transferOwnership" | "unwrap" | "unwrapETH2LD" | "upgrade" | "upgradeContract" | "uri" | "wrap" | "wrapETH2LD"): FunctionFragment;
getEvent(nameOrSignatureOrTopic: "Approval" | "ApprovalForAll" | "ControllerChanged" | "ExpiryExtended" | "FusesSet" | "NameUnwrapped" | "NameWrapped" | "OwnershipTransferred" | "TransferBatch" | "TransferSingle" | "URI"): EventFragment;
encodeFunctionData(functionFragment: "_tokens", values: [BigNumberish]): string;
encodeFunctionData(functionFragment: "allFusesBurned", values: [BytesLike, BigNumberish]): string;
encodeFunctionData(functionFragment: "approve", values: [AddressLike, BigNumberish]): string;
encodeFunctionData(functionFragment: "balanceOf", values: [AddressLike, BigNumberish]): string;
encodeFunctionData(functionFragment: "balanceOfBatch", values: [AddressLike[], BigNumberish[]]): string;
encodeFunctionData(functionFragment: "canExtendSubnames", values: [BytesLike, AddressLike]): string;
encodeFunctionData(functionFragment: "canModifyName", values: [BytesLike, AddressLike]): string;
encodeFunctionData(functionFragment: "controllers", values: [AddressLike]): string;
encodeFunctionData(functionFragment: "ens", values?: undefined): string;
encodeFunctionData(functionFragment: "extendExpiry", values: [BytesLike, BytesLike, BigNumberish]): string;
encodeFunctionData(functionFragment: "getApproved", values: [BigNumberish]): string;
encodeFunctionData(functionFragment: "getData", values: [BigNumberish]): string;
encodeFunctionData(functionFragment: "isApprovedForAll", values: [AddressLike, AddressLike]): string;
encodeFunctionData(functionFragment: "isWrapped(bytes32,bytes32)", values: [BytesLike, BytesLike]): string;
encodeFunctionData(functionFragment: "isWrapped(bytes32)", values: [BytesLike]): string;
encodeFunctionData(functionFragment: "metadataService", values?: undefined): string;
encodeFunctionData(functionFragment: "name", values?: undefined): string;
encodeFunctionData(functionFragment: "names", values: [BytesLike]): string;
encodeFunctionData(functionFragment: "onERC721Received", values: [AddressLike, AddressLike, BigNumberish, BytesLike]): string;
encodeFunctionData(functionFragment: "owner", values?: undefined): string;
encodeFunctionData(functionFragment: "ownerOf", values: [BigNumberish]): string;
encodeFunctionData(functionFragment: "recoverFunds", values: [AddressLike, AddressLike, BigNumberish]): string;
encodeFunctionData(functionFragment: "registerAndWrapETH2LD", values: [string, AddressLike, BigNumberish, AddressLike, BigNumberish]): string;
encodeFunctionData(functionFragment: "registrar", values?: undefined): string;
encodeFunctionData(functionFragment: "renew", values: [BigNumberish, BigNumberish]): string;
encodeFunctionData(functionFragment: "renounceOwnership", values?: undefined): string;
encodeFunctionData(functionFragment: "safeBatchTransferFrom", values: [
AddressLike,
AddressLike,
BigNumberish[],
BigNumberish[],
BytesLike
]): string;
encodeFunctionData(functionFragment: "safeTransferFrom", values: [AddressLike, AddressLike, BigNumberish, BigNumberish, BytesLike]): string;
encodeFunctionData(functionFragment: "setApprovalForAll", values: [AddressLike, boolean]): string;
encodeFunctionData(functionFragment: "setChildFuses", values: [BytesLike, BytesLike, BigNumberish, BigNumberish]): string;
encodeFunctionData(functionFragment: "setController", values: [AddressLike, boolean]): string;
encodeFunctionData(functionFragment: "setFuses", values: [BytesLike, BigNumberish]): string;
encodeFunctionData(functionFragment: "setMetadataService", values: [AddressLike]): string;
encodeFunctionData(functionFragment: "setRecord", values: [BytesLike, AddressLike, AddressLike, BigNumberish]): string;
encodeFunctionData(functionFragment: "setResolver", values: [BytesLike, AddressLike]): string;
encodeFunctionData(functionFragment: "setSubnodeOwner", values: [BytesLike, string, AddressLike, BigNumberish, BigNumberish]): string;
encodeFunctionData(functionFragment: "setSubnodeRecord", values: [
BytesLike,
string,
AddressLike,
AddressLike,
BigNumberish,
BigNumberish,
BigNumberish
]): string;
encodeFunctionData(functionFragment: "setTTL", values: [BytesLike, BigNumberish]): string;
encodeFunctionData(functionFragment: "setUpgradeContract", values: [AddressLike]): string;
encodeFunctionData(functionFragment: "supportsInterface", values: [BytesLike]): string;
encodeFunctionData(functionFragment: "transferOwnership", values: [AddressLike]): string;
encodeFunctionData(functionFragment: "unwrap", values: [BytesLike, BytesLike, AddressLike]): string;
encodeFunctionData(functionFragment: "unwrapETH2LD", values: [BytesLike, AddressLike, AddressLike]): string;
encodeFunctionData(functionFragment: "upgrade", values: [BytesLike, BytesLike]): string;
encodeFunctionData(functionFragment: "upgradeContract", values?: undefined): string;
encodeFunctionData(functionFragment: "uri", values: [BigNumberish]): string;
encodeFunctionData(functionFragment: "wrap", values: [BytesLike, AddressLike, AddressLike]): string;
encodeFunctionData(functionFragment: "wrapETH2LD", values: [string, AddressLike, BigNumberish, AddressLike]): string;
decodeFunctionResult(functionFragment: "_tokens", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "allFusesBurned", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "balanceOf", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "balanceOfBatch", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "canExtendSubnames", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "canModifyName", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "controllers", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "ens", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "extendExpiry", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "getApproved", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "getData", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "isApprovedForAll", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "isWrapped(bytes32,bytes32)", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "isWrapped(bytes32)", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "metadataService", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "names", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "onERC721Received", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "ownerOf", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "recoverFunds", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "registerAndWrapETH2LD", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "registrar", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "renew", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "renounceOwnership", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "safeBatchTransferFrom", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "safeTransferFrom", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setApprovalForAll", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setChildFuses", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setController", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setFuses", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setMetadataService", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setRecord", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setResolver", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setSubnodeOwner", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setSubnodeRecord", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setTTL", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setUpgradeContract", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "transferOwnership", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "unwrap", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "unwrapETH2LD", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "upgrade", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "upgradeContract", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "uri", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "wrap", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "wrapETH2LD", data: BytesLike): Result;
}
export declare namespace ApprovalEvent {
type InputTuple = [
owner: AddressLike,
approved: AddressLike,
tokenId: BigNumberish
];
type OutputTuple = [owner: string, approved: string, tokenId: bigint];
interface OutputObject {
owner: string;
approved: string;
tokenId: bigint;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace ApprovalForAllEvent {
type InputTuple = [
account: AddressLike,
operator: AddressLike,
approved: boolean
];
type OutputTuple = [
account: string,
operator: string,
approved: boolean
];
interface OutputObject {
account: string;
operator: string;
approved: boolean;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace ControllerChangedEvent {
type InputTuple = [controller: AddressLike, active: boolean];
type OutputTuple = [controller: string, active: boolean];
interface OutputObject {
controller: string;
active: boolean;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace ExpiryExtendedEvent {
type InputTuple = [node: BytesLike, expiry: BigNumberish];
type OutputTuple = [node: string, expiry: bigint];
interface OutputObject {
node: string;
expiry: bigint;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace FusesSetEvent {
type InputTuple = [node: BytesLike, fuses: BigNumberish];
type OutputTuple = [node: string, fuses: bigint];
interface OutputObject {
node: string;
fuses: bigint;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace NameUnwrappedEvent {
type InputTuple = [node: BytesLike, owner: AddressLike];
type OutputTuple = [node: string, owner: string];
interface OutputObject {
node: string;
owner: string;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace NameWrappedEvent {
type InputTuple = [
node: BytesLike,
name: BytesLike,
owner: AddressLike,
fuses: BigNumberish,
expiry: BigNumberish
];
type OutputTuple = [
node: string,
name: string,
owner: string,
fuses: bigint,
expiry: bigint
];
interface OutputObject {
node: string;
name: string;
owner: string;
fuses: bigint;
expiry: bigint;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace OwnershipTransferredEvent {
type InputTuple = [previousOwner: AddressLike, newOwner: AddressLike];
type OutputTuple = [previousOwner: string, newOwner: string];
interface OutputObject {
previousOwner: string;
newOwner: string;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace TransferBatchEvent {
type InputTuple = [
operator: AddressLike,
from: AddressLike,
to: AddressLike,
ids: BigNumberish[],
values: BigNumberish[]
];
type OutputTuple = [
operator: string,
from: string,
to: string,
ids: bigint[],
values: bigint[]
];
interface OutputObject {
operator: string;
from: string;
to: string;
ids: bigint[];
values: bigint[];
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace TransferSingleEvent {
type InputTuple = [
operator: AddressLike,
from: AddressLike,
to: AddressLike,
id: BigNumberish,
value: BigNumberish
];
type OutputTuple = [
operator: string,
from: string,
to: string,
id: bigint,
value: bigint
];
interface OutputObject {
operator: string;
from: string;
to: string;
id: bigint;
value: bigint;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace URIEvent {
type InputTuple = [value: string, id: BigNumberish];
type OutputTuple = [value: string, id: bigint];
interface OutputObject {
value: string;
id: bigint;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export interface ENSNameWrapper extends BaseContract {
connect(runner?: ContractRunner | null): ENSNameWrapper;
waitForDeployment(): Promise<this>;
interface: ENSNameWrapperInterface;
queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>;
listeners(eventName?: string): Promise<Array<Listener>>;
removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>;
_tokens: TypedContractMethod<[arg0: BigNumberish], [bigint], "view">;
allFusesBurned: TypedContractMethod<[
node: BytesLike,
fuseMask: BigNumberish
], [
boolean
], "view">;
approve: TypedContractMethod<[
to: AddressLike,
tokenId: BigNumberish
], [
void
], "nonpayable">;
balanceOf: TypedContractMethod<[
account: AddressLike,
id: BigNumberish
], [
bigint
], "view">;
balanceOfBatch: TypedContractMethod<[
accounts: AddressLike[],
ids: BigNumberish[]
], [
bigint[]
], "view">;
canExtendSubnames: TypedContractMethod<[
node: BytesLike,
addr: AddressLike
], [
boolean
], "view">;
canModifyName: TypedContractMethod<[
node: BytesLike,
addr: AddressLike
], [
boolean
], "view">;
controllers: TypedContractMethod<[arg0: AddressLike], [boolean], "view">;
ens: TypedContractMethod<[], [string], "view">;
extendExpiry: TypedContractMethod<[
parentNode: BytesLike,
labelhash: BytesLike,
expiry: BigNumberish
], [
bigint
], "nonpayable">;
getApproved: TypedContractMethod<[id: BigNumberish], [string], "view">;
getData: TypedContractMethod<[
id: BigNumberish
], [
[
string,
bigint,
bigint
] & {
owner: string;
fuses: bigint;
expiry: bigint;
}
], "view">;
isApprovedForAll: TypedContractMethod<[
account: AddressLike,
operator: AddressLike
], [
boolean
], "view">;
"isWrapped(bytes32,bytes32)": TypedContractMethod<[
parentNode: BytesLike,
labelhash: BytesLike
], [
boolean
], "view">;
"isWrapped(bytes32)": TypedContractMethod<[
node: BytesLike
], [
boolean
], "view">;
metadataService: TypedContractMethod<[], [string], "view">;
name: TypedContractMethod<[], [string], "view">;
names: TypedContractMethod<[arg0: BytesLike], [string], "view">;
onERC721Received: TypedContractMethod<[
to: AddressLike,
arg1: AddressLike,
tokenId: BigNumberish,
data: BytesLike
], [
string
], "nonpayable">;
owner: TypedContractMethod<[], [string], "view">;
ownerOf: TypedContractMethod<[id: BigNumberish], [string], "view">;
recoverFunds: TypedContractMethod<[
_token: AddressLike,
_to: AddressLike,
_amount: BigNumberish
], [
void
], "nonpayable">;
registerAndWrapETH2LD: TypedContractMethod<[
label: string,
wrappedOwner: AddressLike,
duration: BigNumberish,
resolver: AddressLike,
ownerControlledFuses: BigNumberish
], [
bigint
], "nonpayable">;
registrar: TypedContractMethod<[], [string], "view">;
renew: TypedContractMethod<[
tokenId: BigNumberish,
duration: BigNumberish
], [
bigint
], "nonpayable">;
renounceOwnership: TypedContractMethod<[], [void], "nonpayable">;
safeBatchTransferFrom: TypedContractMethod<[
from: AddressLike,
to: AddressLike,
ids: BigNumberish[],
amounts: BigNumberish[],
data: BytesLike
], [
void
], "nonpayable">;
safeTransferFrom: TypedContractMethod<[
from: AddressLike,
to: AddressLike,
id: BigNumberish,
amount: BigNumberish,
data: BytesLike
], [
void
], "nonpayable">;
setApprovalForAll: TypedContractMethod<[
operator: AddressLike,
approved: boolean
], [
void
], "nonpayable">;
setChildFuses: TypedContractMethod<[
parentNode: BytesLike,
labelhash: BytesLike,
fuses: BigNumberish,
expiry: BigNumberish
], [
void
], "nonpayable">;
setController: TypedContractMethod<[
controller: AddressLike,
active: boolean
], [
void
], "nonpayable">;
setFuses: TypedContractMethod<[
node: BytesLike,
ownerControlledFuses: BigNumberish
], [
bigint
], "nonpayable">;
setMetadataService: TypedContractMethod<[
_metadataService: AddressLike
], [
void
], "nonpayable">;
setRecord: TypedContractMethod<[
node: BytesLike,
owner: AddressLike,
resolver: AddressLike,
ttl: BigNumberish
], [
void
], "nonpayable">;
setResolver: TypedContractMethod<[
node: BytesLike,
resolver: AddressLike
], [
void
], "nonpayable">;
setSubnodeOwner: TypedContractMethod<[
parentNode: BytesLike,
label: string,
owner: AddressLike,
fuses: BigNumberish,
expiry: BigNumberish
], [
string
], "nonpayable">;
setSubnodeRecord: TypedContractMethod<[
parentNode: BytesLike,
label: string,
owner: AddressLike,
resolver: AddressLike,
ttl: BigNumberish,
fuses: BigNumberish,
expiry: BigNumberish
], [
string
], "nonpayable">;
setTTL: TypedContractMethod<[
node: BytesLike,
ttl: BigNumberish
], [
void
], "nonpayable">;
setUpgradeContract: TypedContractMethod<[
_upgradeAddress: AddressLike
], [
void
], "nonpayable">;
supportsInterface: TypedContractMethod<[
interfaceId: BytesLike
], [
boolean
], "view">;
transferOwnership: TypedContractMethod<[
newOwner: AddressLike
], [
void
], "nonpayable">;
unwrap: TypedContractMethod<[
parentNode: BytesLike,
labelhash: BytesLike,
controller: AddressLike
], [
void
], "nonpayable">;
unwrapETH2LD: TypedContractMethod<[
labelhash: BytesLike,
registrant: AddressLike,
controller: AddressLike
], [
void
], "nonpayable">;
upgrade: TypedContractMethod<[
name: BytesLike,
extraData: BytesLike
], [
void
], "nonpayable">;
upgradeContract: TypedContractMethod<[], [string], "view">;
uri: TypedContractMethod<[tokenId: BigNumberish], [string], "view">;
wrap: TypedContractMethod<[
name: BytesLike,
wrappedOwner: AddressLike,
resolver: AddressLike
], [
void
], "nonpayable">;
wrapETH2LD: TypedContractMethod<[
label: string,
wrappedOwner: AddressLike,
ownerControlledFuses: BigNumberish,
resolver: AddressLike
], [
bigint
], "nonpayable">;
getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
getFunction(nameOrSignature: "_tokens"): TypedContractMethod<[arg0: BigNumberish], [bigint], "view">;
getFunction(nameOrSignature: "allFusesBurned"): TypedContractMethod<[
node: BytesLike,
fuseMask: BigNumberish
], [
boolean
], "view">;
getFunction(nameOrSignature: "approve"): TypedContractMethod<[
to: AddressLike,
tokenId: BigNumberish
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "balanceOf"): TypedContractMethod<[
account: AddressLike,
id: BigNumberish
], [
bigint
], "view">;
getFunction(nameOrSignature: "balanceOfBatch"): TypedContractMethod<[
accounts: AddressLike[],
ids: BigNumberish[]
], [
bigint[]
], "view">;
getFunction(nameOrSignature: "canExtendSubnames"): TypedContractMethod<[
node: BytesLike,
addr: AddressLike
], [
boolean
], "view">;
getFunction(nameOrSignature: "canModifyName"): TypedContractMethod<[
node: BytesLike,
addr: AddressLike
], [
boolean
], "view">;
getFunction(nameOrSignature: "controllers"): TypedContractMethod<[arg0: AddressLike], [boolean], "view">;
getFunction(nameOrSignature: "ens"): TypedContractMethod<[], [string], "view">;
getFunction(nameOrSignature: "extendExpiry"): TypedContractMethod<[
parentNode: BytesLike,
labelhash: BytesLike,
expiry: BigNumberish
], [
bigint
], "nonpayable">;
getFunction(nameOrSignature: "getApproved"): TypedContractMethod<[id: BigNumberish], [string], "view">;
getFunction(nameOrSignature: "getData"): TypedContractMethod<[
id: BigNumberish
], [
[
string,
bigint,
bigint
] & {
owner: string;
fuses: bigint;
expiry: bigint;
}
], "view">;
getFunction(nameOrSignature: "isApprovedForAll"): TypedContractMethod<[
account: AddressLike,
operator: AddressLike
], [
boolean
], "view">;
getFunction(nameOrSignature: "isWrapped(bytes32,bytes32)"): TypedContractMethod<[
parentNode: BytesLike,
labelhash: BytesLike
], [
boolean
], "view">;
getFunction(nameOrSignature: "isWrapped(bytes32)"): TypedContractMethod<[node: BytesLike], [boolean], "view">;
getFunction(nameOrSignature: "metadataService"): TypedContractMethod<[], [string], "view">;
getFunction(nameOrSignature: "name"): TypedContractMethod<[], [string], "view">;
getFunction(nameOrSignature: "names"): TypedContractMethod<[arg0: BytesLike], [string], "view">;
getFunction(nameOrSignature: "onERC721Received"): TypedContractMethod<[
to: AddressLike,
arg1: AddressLike,
tokenId: BigNumberish,
data: BytesLike
], [
string
], "nonpayable">;
getFunction(nameOrSignature: "owner"): TypedContractMethod<[], [string], "view">;
getFunction(nameOrSignature: "ownerOf"): TypedContractMethod<[id: BigNumberish], [string], "view">;
getFunction(nameOrSignature: "recoverFunds"): TypedContractMethod<[
_token: AddressLike,
_to: AddressLike,
_amount: BigNumberish
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "registerAndWrapETH2LD"): TypedContractMethod<[
label: string,
wrappedOwner: AddressLike,
duration: BigNumberish,
resolver: AddressLike,
ownerControlledFuses: BigNumberish
], [
bigint
], "nonpayable">;
getFunction(nameOrSignature: "registrar"): TypedContractMethod<[], [string], "view">;
getFunction(nameOrSignature: "renew"): TypedContractMethod<[
tokenId: BigNumberish,
duration: BigNumberish
], [
bigint
], "nonpayable">;
getFunction(nameOrSignature: "renounceOwnership"): TypedContractMethod<[], [void], "nonpayable">;
getFunction(nameOrSignature: "safeBatchTransferFrom"): TypedContractMethod<[
from: AddressLike,
to: AddressLike,
ids: BigNumberish[],
amounts: BigNumberish[],
data: BytesLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "safeTransferFrom"): TypedContractMethod<[
from: AddressLike,
to: AddressLike,
id: BigNumberish,
amount: BigNumberish,
data: BytesLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "setApprovalForAll"): TypedContractMethod<[
operator: AddressLike,
approved: boolean
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "setChildFuses"): TypedContractMethod<[
parentNode: BytesLike,
labelhash: BytesLike,
fuses: BigNumberish,
expiry: BigNumberish
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "setController"): TypedContractMethod<[
controller: AddressLike,
active: boolean
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "setFuses"): TypedContractMethod<[
node: BytesLike,
ownerControlledFuses: BigNumberish
], [
bigint
], "nonpayable">;
getFunction(nameOrSignature: "setMetadataService"): TypedContractMethod<[_metadataService: AddressLike], [void], "nonpayable">;
getFunction(nameOrSignature: "setRecord"): TypedContractMethod<[
node: BytesLike,
owner: AddressLike,
resolver: AddressLike,
ttl: BigNumberish
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "setResolver"): TypedContractMethod<[
node: BytesLike,
resolver: AddressLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "setSubnodeOwner"): TypedContractMethod<[
parentNode: BytesLike,
label: string,
owner: AddressLike,
fuses: BigNumberish,
expiry: BigNumberish
], [
string
], "nonpayable">;
getFunction(nameOrSignature: "setSubnodeRecord"): TypedContractMethod<[
parentNode: BytesLike,
label: string,
owner: AddressLike,
resolver: AddressLike,
ttl: BigNumberish,
fuses: BigNumberish,
expiry: BigNumberish
], [
string
], "nonpayable">;
getFunction(nameOrSignature: "setTTL"): TypedContractMethod<[
node: BytesLike,
ttl: BigNumberish
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "setUpgradeContract"): TypedContractMethod<[_upgradeAddress: AddressLike], [void], "nonpayable">;
getFunction(nameOrSignature: "supportsInterface"): TypedContractMethod<[interfaceId: BytesLike], [boolean], "view">;
getFunction(nameOrSignature: "transferOwnership"): TypedContractMethod<[newOwner: AddressLike], [void], "nonpayable">;
getFunction(nameOrSignature: "unwrap"): TypedContractMethod<[
parentNode: BytesLike,
labelhash: BytesLike,
controller: AddressLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "unwrapETH2LD"): TypedContractMethod<[
labelhash: BytesLike,
registrant: AddressLike,
controller: AddressLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "upgrade"): TypedContractMethod<[
name: BytesLike,
extraData: BytesLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "upgradeContract"): TypedContractMethod<[], [string], "view">;
getFunction(nameOrSignature: "uri"): TypedContractMethod<[tokenId: BigNumberish], [string], "view">;
getFunction(nameOrSignature: "wrap"): TypedContractMethod<[
name: BytesLike,
wrappedOwner: AddressLike,
resolver: AddressLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "wrapETH2LD"): TypedContractMethod<[
label: string,
wrappedOwner: AddressLike,
ownerControlledFuses: BigNumberish,
resolver: AddressLike
], [
bigint
], "nonpayable">;
getEvent(key: "Approval"): TypedContractEvent<ApprovalEvent.InputTuple, ApprovalEvent.OutputTuple, ApprovalEvent.OutputObject>;
getEvent(key: "ApprovalForAll"): TypedContractEvent<ApprovalForAllEvent.InputTuple, ApprovalForAllEvent.OutputTuple, ApprovalForAllEvent.OutputObject>;
getEvent(key: "ControllerChanged"): TypedContractEvent<ControllerChangedEvent.InputTuple, ControllerChangedEvent.OutputTuple, ControllerChangedEvent.OutputObject>;
getEvent(key: "ExpiryExtended"): TypedContractEvent<ExpiryExtendedEvent.InputTuple, ExpiryExtendedEvent.OutputTuple, ExpiryExtendedEvent.OutputObject>;
getEvent(key: "FusesSet"): TypedContractEvent<FusesSetEvent.InputTuple, FusesSetEvent.OutputTuple, FusesSetEvent.OutputObject>;
getEvent(key: "NameUnwrapped"): TypedContractEvent<NameUnwrappedEvent.InputTuple, NameUnwrappedEvent.OutputTuple, NameUnwrappedEvent.OutputObject>;
getEvent(key: "NameWrapped"): TypedContractEvent<NameWrappedEvent.InputTuple, NameWrappedEvent.OutputTuple, NameWrappedEvent.OutputObject>;
getEvent(key: "OwnershipTransferred"): TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;
getEvent(key: "TransferBatch"): TypedContractEvent<TransferBatchEvent.InputTuple, TransferBatchEvent.OutputTuple, TransferBatchEvent.OutputObject>;
getEvent(key: "TransferSingle"): TypedContractEvent<TransferSingleEvent.InputTuple, TransferSingleEvent.OutputTuple, TransferSingleEvent.OutputObject>;
getEvent(key: "URI"): TypedContractEvent<URIEvent.InputTuple, URIEvent.OutputTuple, URIEvent.OutputObject>;
filters: {
"Approval(address,address,uint256)": TypedContractEvent<ApprovalEvent.InputTuple, ApprovalEvent.OutputTuple, ApprovalEvent.OutputObject>;
Approval: TypedContractEvent<ApprovalEvent.InputTuple, ApprovalEvent.OutputTuple, ApprovalEvent.OutputObject>;
"ApprovalForAll(address,address,bool)": TypedContractEvent<ApprovalForAllEvent.InputTuple, ApprovalForAllEvent.OutputTuple, ApprovalForAllEvent.OutputObject>;
ApprovalForAll: TypedContractEvent<ApprovalForAllEvent.InputTuple, ApprovalForAllEvent.OutputTuple, ApprovalForAllEvent.OutputObject>;
"ControllerChanged(address,bool)": TypedContractEvent<ControllerChangedEvent.InputTuple, ControllerChangedEvent.OutputTuple, ControllerChangedEvent.OutputObject>;
ControllerChanged: TypedContractEvent<ControllerChangedEvent.InputTuple, ControllerChangedEvent.OutputTuple, ControllerChangedEvent.OutputObject>;
"ExpiryExtended(bytes32,uint64)": TypedContractEvent<ExpiryExtendedEvent.InputTuple, ExpiryExtendedEvent.OutputTuple, ExpiryExtendedEvent.OutputObject>;
ExpiryExtended: TypedContractEvent<ExpiryExtendedEvent.InputTuple, ExpiryExtendedEvent.OutputTuple, ExpiryExtendedEvent.OutputObject>;
"FusesSet(bytes32,uint32)": TypedContractEvent<FusesSetEvent.InputTuple, FusesSetEvent.OutputTuple, FusesSetEvent.OutputObject>;
FusesSet: TypedContractEvent<FusesSetEvent.InputTuple, FusesSetEvent.OutputTuple, FusesSetEvent.OutputObject>;
"NameUnwrapped(bytes32,address)": TypedContractEvent<NameUnwrappedEvent.InputTuple, NameUnwrappedEvent.OutputTuple, NameUnwrappedEvent.OutputObject>;
NameUnwrapped: TypedContractEvent<NameUnwrappedEvent.InputTuple, NameUnwrappedEvent.OutputTuple, NameUnwrappedEvent.OutputObject>;
"NameWrapped(bytes32,bytes,address,uint32,uint64)": TypedContractEvent<NameWrappedEvent.InputTuple, NameWrappedEvent.OutputTuple, NameWrappedEvent.OutputObject>;
NameWrapped: TypedContractEvent<NameWrappedEvent.InputTuple, NameWrappedEvent.OutputTuple, NameWrappedEvent.OutputObject>;
"OwnershipTransferred(address,address)": TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;
OwnershipTransferred: TypedContractEvent<OwnershipTransferredEvent.InputTuple, OwnershipTransferredEvent.OutputTuple, OwnershipTransferredEvent.OutputObject>;
"TransferBatch(address,address,address,uint256[],uint256[])": TypedContractEvent<TransferBatchEvent.InputTuple, TransferBatchEvent.OutputTuple, TransferBatchEvent.OutputObject>;
TransferBatch: TypedContractEvent<TransferBatchEvent.InputTuple, TransferBatchEvent.OutputTuple, TransferBatchEvent.OutputObject>;
"TransferSingle(address,address,address,uint256,uint256)": TypedContractEvent<TransferSingleEvent.InputTuple, TransferSingleEvent.OutputTuple, TransferSingleEvent.OutputObject>;
TransferSingle: TypedContractEvent<TransferSingleEvent.InputTuple, TransferSingleEvent.OutputTuple, TransferSingleEvent.OutputObject>;
"URI(string,uint256)": TypedContractEvent<URIEvent.InputTuple, URIEvent.OutputTuple, URIEvent.OutputObject>;
URI: TypedContractEvent<URIEvent.InputTuple, URIEvent.OutputTuple, URIEvent.OutputObject>;
};
}

256
dist/typechain/ENSRegistry.d.ts vendored Normal file

@ -0,0 +1,256 @@
import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers";
import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "./common";
export interface ENSRegistryInterface extends Interface {
getFunction(nameOrSignature: "isApprovedForAll" | "old" | "owner" | "recordExists" | "resolver" | "setApprovalForAll" | "setOwner" | "setRecord" | "setResolver" | "setSubnodeOwner" | "setSubnodeRecord" | "setTTL" | "ttl"): FunctionFragment;
getEvent(nameOrSignatureOrTopic: "ApprovalForAll" | "NewOwner" | "NewResolver" | "NewTTL" | "Transfer"): EventFragment;
encodeFunctionData(functionFragment: "isApprovedForAll", values: [AddressLike, AddressLike]): string;
encodeFunctionData(functionFragment: "old", values?: undefined): string;
encodeFunctionData(functionFragment: "owner", values: [BytesLike]): string;
encodeFunctionData(functionFragment: "recordExists", values: [BytesLike]): string;
encodeFunctionData(functionFragment: "resolver", values: [BytesLike]): string;
encodeFunctionData(functionFragment: "setApprovalForAll", values: [AddressLike, boolean]): string;
encodeFunctionData(functionFragment: "setOwner", values: [BytesLike, AddressLike]): string;
encodeFunctionData(functionFragment: "setRecord", values: [BytesLike, AddressLike, AddressLike, BigNumberish]): string;
encodeFunctionData(functionFragment: "setResolver", values: [BytesLike, AddressLike]): string;
encodeFunctionData(functionFragment: "setSubnodeOwner", values: [BytesLike, BytesLike, AddressLike]): string;
encodeFunctionData(functionFragment: "setSubnodeRecord", values: [BytesLike, BytesLike, AddressLike, AddressLike, BigNumberish]): string;
encodeFunctionData(functionFragment: "setTTL", values: [BytesLike, BigNumberish]): string;
encodeFunctionData(functionFragment: "ttl", values: [BytesLike]): string;
decodeFunctionResult(functionFragment: "isApprovedForAll", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "old", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "recordExists", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "resolver", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setApprovalForAll", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setOwner", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setRecord", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setResolver", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setSubnodeOwner", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setSubnodeRecord", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setTTL", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "ttl", data: BytesLike): Result;
}
export declare namespace ApprovalForAllEvent {
type InputTuple = [
owner: AddressLike,
operator: AddressLike,
approved: boolean
];
type OutputTuple = [
owner: string,
operator: string,
approved: boolean
];
interface OutputObject {
owner: string;
operator: string;
approved: boolean;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace NewOwnerEvent {
type InputTuple = [
node: BytesLike,
label: BytesLike,
owner: AddressLike
];
type OutputTuple = [node: string, label: string, owner: string];
interface OutputObject {
node: string;
label: string;
owner: string;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace NewResolverEvent {
type InputTuple = [node: BytesLike, resolver: AddressLike];
type OutputTuple = [node: string, resolver: string];
interface OutputObject {
node: string;
resolver: string;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace NewTTLEvent {
type InputTuple = [node: BytesLike, ttl: BigNumberish];
type OutputTuple = [node: string, ttl: bigint];
interface OutputObject {
node: string;
ttl: bigint;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace TransferEvent {
type InputTuple = [node: BytesLike, owner: AddressLike];
type OutputTuple = [node: string, owner: string];
interface OutputObject {
node: string;
owner: string;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export interface ENSRegistry extends BaseContract {
connect(runner?: ContractRunner | null): ENSRegistry;
waitForDeployment(): Promise<this>;
interface: ENSRegistryInterface;
queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>;
listeners(eventName?: string): Promise<Array<Listener>>;
removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>;
isApprovedForAll: TypedContractMethod<[
owner: AddressLike,
operator: AddressLike
], [
boolean
], "view">;
old: TypedContractMethod<[], [string], "view">;
owner: TypedContractMethod<[node: BytesLike], [string], "view">;
recordExists: TypedContractMethod<[node: BytesLike], [boolean], "view">;
resolver: TypedContractMethod<[node: BytesLike], [string], "view">;
setApprovalForAll: TypedContractMethod<[
operator: AddressLike,
approved: boolean
], [
void
], "nonpayable">;
setOwner: TypedContractMethod<[
node: BytesLike,
owner: AddressLike
], [
void
], "nonpayable">;
setRecord: TypedContractMethod<[
node: BytesLike,
owner: AddressLike,
resolver: AddressLike,
ttl: BigNumberish
], [
void
], "nonpayable">;
setResolver: TypedContractMethod<[
node: BytesLike,
resolver: AddressLike
], [
void
], "nonpayable">;
setSubnodeOwner: TypedContractMethod<[
node: BytesLike,
label: BytesLike,
owner: AddressLike
], [
string
], "nonpayable">;
setSubnodeRecord: TypedContractMethod<[
node: BytesLike,
label: BytesLike,
owner: AddressLike,
resolver: AddressLike,
ttl: BigNumberish
], [
void
], "nonpayable">;
setTTL: TypedContractMethod<[
node: BytesLike,
ttl: BigNumberish
], [
void
], "nonpayable">;
ttl: TypedContractMethod<[node: BytesLike], [bigint], "view">;
getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
getFunction(nameOrSignature: "isApprovedForAll"): TypedContractMethod<[
owner: AddressLike,
operator: AddressLike
], [
boolean
], "view">;
getFunction(nameOrSignature: "old"): TypedContractMethod<[], [string], "view">;
getFunction(nameOrSignature: "owner"): TypedContractMethod<[node: BytesLike], [string], "view">;
getFunction(nameOrSignature: "recordExists"): TypedContractMethod<[node: BytesLike], [boolean], "view">;
getFunction(nameOrSignature: "resolver"): TypedContractMethod<[node: BytesLike], [string], "view">;
getFunction(nameOrSignature: "setApprovalForAll"): TypedContractMethod<[
operator: AddressLike,
approved: boolean
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "setOwner"): TypedContractMethod<[
node: BytesLike,
owner: AddressLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "setRecord"): TypedContractMethod<[
node: BytesLike,
owner: AddressLike,
resolver: AddressLike,
ttl: BigNumberish
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "setResolver"): TypedContractMethod<[
node: BytesLike,
resolver: AddressLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "setSubnodeOwner"): TypedContractMethod<[
node: BytesLike,
label: BytesLike,
owner: AddressLike
], [
string
], "nonpayable">;
getFunction(nameOrSignature: "setSubnodeRecord"): TypedContractMethod<[
node: BytesLike,
label: BytesLike,
owner: AddressLike,
resolver: AddressLike,
ttl: BigNumberish
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "setTTL"): TypedContractMethod<[
node: BytesLike,
ttl: BigNumberish
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "ttl"): TypedContractMethod<[node: BytesLike], [bigint], "view">;
getEvent(key: "ApprovalForAll"): TypedContractEvent<ApprovalForAllEvent.InputTuple, ApprovalForAllEvent.OutputTuple, ApprovalForAllEvent.OutputObject>;
getEvent(key: "NewOwner"): TypedContractEvent<NewOwnerEvent.InputTuple, NewOwnerEvent.OutputTuple, NewOwnerEvent.OutputObject>;
getEvent(key: "NewResolver"): TypedContractEvent<NewResolverEvent.InputTuple, NewResolverEvent.OutputTuple, NewResolverEvent.OutputObject>;
getEvent(key: "NewTTL"): TypedContractEvent<NewTTLEvent.InputTuple, NewTTLEvent.OutputTuple, NewTTLEvent.OutputObject>;
getEvent(key: "Transfer"): TypedContractEvent<TransferEvent.InputTuple, TransferEvent.OutputTuple, TransferEvent.OutputObject>;
filters: {
"ApprovalForAll(address,address,bool)": TypedContractEvent<ApprovalForAllEvent.InputTuple, ApprovalForAllEvent.OutputTuple, ApprovalForAllEvent.OutputObject>;
ApprovalForAll: TypedContractEvent<ApprovalForAllEvent.InputTuple, ApprovalForAllEvent.OutputTuple, ApprovalForAllEvent.OutputObject>;
"NewOwner(bytes32,bytes32,address)": TypedContractEvent<NewOwnerEvent.InputTuple, NewOwnerEvent.OutputTuple, NewOwnerEvent.OutputObject>;
NewOwner: TypedContractEvent<NewOwnerEvent.InputTuple, NewOwnerEvent.OutputTuple, NewOwnerEvent.OutputObject>;
"NewResolver(bytes32,address)": TypedContractEvent<NewResolverEvent.InputTuple, NewResolverEvent.OutputTuple, NewResolverEvent.OutputObject>;
NewResolver: TypedContractEvent<NewResolverEvent.InputTuple, NewResolverEvent.OutputTuple, NewResolverEvent.OutputObject>;
"NewTTL(bytes32,uint64)": TypedContractEvent<NewTTLEvent.InputTuple, NewTTLEvent.OutputTuple, NewTTLEvent.OutputObject>;
NewTTL: TypedContractEvent<NewTTLEvent.InputTuple, NewTTLEvent.OutputTuple, NewTTLEvent.OutputObject>;
"Transfer(bytes32,address)": TypedContractEvent<TransferEvent.InputTuple, TransferEvent.OutputTuple, TransferEvent.OutputObject>;
Transfer: TypedContractEvent<TransferEvent.InputTuple, TransferEvent.OutputTuple, TransferEvent.OutputObject>;
};
}

660
dist/typechain/ENSResolver.d.ts vendored Normal file

@ -0,0 +1,660 @@
import type { BaseContract, BigNumberish, BytesLike, FunctionFragment, Result, Interface, EventFragment, AddressLike, ContractRunner, ContractMethod, Listener } from "ethers";
import type { TypedContractEvent, TypedDeferredTopicFilter, TypedEventLog, TypedLogDescription, TypedListener, TypedContractMethod } from "./common";
export interface ENSResolverInterface extends Interface {
getFunction(nameOrSignature: "ABI" | "addr(bytes32)" | "addr(bytes32,uint256)" | "approve" | "clearRecords" | "contenthash" | "dnsRecord" | "hasDNSRecords" | "interfaceImplementer" | "isApprovedFor" | "isApprovedForAll" | "multicall" | "multicallWithNodeCheck" | "name" | "pubkey" | "recordVersions" | "setABI" | "setAddr(bytes32,uint256,bytes)" | "setAddr(bytes32,address)" | "setApprovalForAll" | "setContenthash" | "setDNSRecords" | "setInterface" | "setName" | "setPubkey" | "setText" | "setZonehash" | "supportsInterface" | "text" | "zonehash"): FunctionFragment;
getEvent(nameOrSignatureOrTopic: "ABIChanged" | "AddrChanged" | "AddressChanged" | "ApprovalForAll" | "Approved" | "ContenthashChanged" | "DNSRecordChanged" | "DNSRecordDeleted" | "DNSZonehashChanged" | "InterfaceChanged" | "NameChanged" | "PubkeyChanged" | "TextChanged" | "VersionChanged"): EventFragment;
encodeFunctionData(functionFragment: "ABI", values: [BytesLike, BigNumberish]): string;
encodeFunctionData(functionFragment: "addr(bytes32)", values: [BytesLike]): string;
encodeFunctionData(functionFragment: "addr(bytes32,uint256)", values: [BytesLike, BigNumberish]): string;
encodeFunctionData(functionFragment: "approve", values: [BytesLike, AddressLike, boolean]): string;
encodeFunctionData(functionFragment: "clearRecords", values: [BytesLike]): string;
encodeFunctionData(functionFragment: "contenthash", values: [BytesLike]): string;
encodeFunctionData(functionFragment: "dnsRecord", values: [BytesLike, BytesLike, BigNumberish]): string;
encodeFunctionData(functionFragment: "hasDNSRecords", values: [BytesLike, BytesLike]): string;
encodeFunctionData(functionFragment: "interfaceImplementer", values: [BytesLike, BytesLike]): string;
encodeFunctionData(functionFragment: "isApprovedFor", values: [AddressLike, BytesLike, AddressLike]): string;
encodeFunctionData(functionFragment: "isApprovedForAll", values: [AddressLike, AddressLike]): string;
encodeFunctionData(functionFragment: "multicall", values: [BytesLike[]]): string;
encodeFunctionData(functionFragment: "multicallWithNodeCheck", values: [BytesLike, BytesLike[]]): string;
encodeFunctionData(functionFragment: "name", values: [BytesLike]): string;
encodeFunctionData(functionFragment: "pubkey", values: [BytesLike]): string;
encodeFunctionData(functionFragment: "recordVersions", values: [BytesLike]): string;
encodeFunctionData(functionFragment: "setABI", values: [BytesLike, BigNumberish, BytesLike]): string;
encodeFunctionData(functionFragment: "setAddr(bytes32,uint256,bytes)", values: [BytesLike, BigNumberish, BytesLike]): string;
encodeFunctionData(functionFragment: "setAddr(bytes32,address)", values: [BytesLike, AddressLike]): string;
encodeFunctionData(functionFragment: "setApprovalForAll", values: [AddressLike, boolean]): string;
encodeFunctionData(functionFragment: "setContenthash", values: [BytesLike, BytesLike]): string;
encodeFunctionData(functionFragment: "setDNSRecords", values: [BytesLike, BytesLike]): string;
encodeFunctionData(functionFragment: "setInterface", values: [BytesLike, BytesLike, AddressLike]): string;
encodeFunctionData(functionFragment: "setName", values: [BytesLike, string]): string;
encodeFunctionData(functionFragment: "setPubkey", values: [BytesLike, BytesLike, BytesLike]): string;
encodeFunctionData(functionFragment: "setText", values: [BytesLike, string, string]): string;
encodeFunctionData(functionFragment: "setZonehash", values: [BytesLike, BytesLike]): string;
encodeFunctionData(functionFragment: "supportsInterface", values: [BytesLike]): string;
encodeFunctionData(functionFragment: "text", values: [BytesLike, string]): string;
encodeFunctionData(functionFragment: "zonehash", values: [BytesLike]): string;
decodeFunctionResult(functionFragment: "ABI", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "addr(bytes32)", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "addr(bytes32,uint256)", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "approve", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "clearRecords", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "contenthash", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "dnsRecord", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "hasDNSRecords", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "interfaceImplementer", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "isApprovedFor", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "isApprovedForAll", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "multicall", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "multicallWithNodeCheck", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "name", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "pubkey", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "recordVersions", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setABI", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setAddr(bytes32,uint256,bytes)", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setAddr(bytes32,address)", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setApprovalForAll", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setContenthash", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setDNSRecords", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setInterface", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setName", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setPubkey", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setText", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setZonehash", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "supportsInterface", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "text", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "zonehash", data: BytesLike): Result;
}
export declare namespace ABIChangedEvent {
type InputTuple = [node: BytesLike, contentType: BigNumberish];
type OutputTuple = [node: string, contentType: bigint];
interface OutputObject {
node: string;
contentType: bigint;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace AddrChangedEvent {
type InputTuple = [node: BytesLike, a: AddressLike];
type OutputTuple = [node: string, a: string];
interface OutputObject {
node: string;
a: string;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace AddressChangedEvent {
type InputTuple = [
node: BytesLike,
coinType: BigNumberish,
newAddress: BytesLike
];
type OutputTuple = [
node: string,
coinType: bigint,
newAddress: string
];
interface OutputObject {
node: string;
coinType: bigint;
newAddress: string;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace ApprovalForAllEvent {
type InputTuple = [
owner: AddressLike,
operator: AddressLike,
approved: boolean
];
type OutputTuple = [
owner: string,
operator: string,
approved: boolean
];
interface OutputObject {
owner: string;
operator: string;
approved: boolean;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace ApprovedEvent {
type InputTuple = [
owner: AddressLike,
node: BytesLike,
delegate: AddressLike,
approved: boolean
];
type OutputTuple = [
owner: string,
node: string,
delegate: string,
approved: boolean
];
interface OutputObject {
owner: string;
node: string;
delegate: string;
approved: boolean;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace ContenthashChangedEvent {
type InputTuple = [node: BytesLike, hash: BytesLike];
type OutputTuple = [node: string, hash: string];
interface OutputObject {
node: string;
hash: string;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace DNSRecordChangedEvent {
type InputTuple = [
node: BytesLike,
name: BytesLike,
resource: BigNumberish,
record: BytesLike
];
type OutputTuple = [
node: string,
name: string,
resource: bigint,
record: string
];
interface OutputObject {
node: string;
name: string;
resource: bigint;
record: string;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace DNSRecordDeletedEvent {
type InputTuple = [
node: BytesLike,
name: BytesLike,
resource: BigNumberish
];
type OutputTuple = [node: string, name: string, resource: bigint];
interface OutputObject {
node: string;
name: string;
resource: bigint;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace DNSZonehashChangedEvent {
type InputTuple = [
node: BytesLike,
lastzonehash: BytesLike,
zonehash: BytesLike
];
type OutputTuple = [
node: string,
lastzonehash: string,
zonehash: string
];
interface OutputObject {
node: string;
lastzonehash: string;
zonehash: string;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace InterfaceChangedEvent {
type InputTuple = [
node: BytesLike,
interfaceID: BytesLike,
implementer: AddressLike
];
type OutputTuple = [
node: string,
interfaceID: string,
implementer: string
];
interface OutputObject {
node: string;
interfaceID: string;
implementer: string;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace NameChangedEvent {
type InputTuple = [node: BytesLike, name: string];
type OutputTuple = [node: string, name: string];
interface OutputObject {
node: string;
name: string;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace PubkeyChangedEvent {
type InputTuple = [node: BytesLike, x: BytesLike, y: BytesLike];
type OutputTuple = [node: string, x: string, y: string];
interface OutputObject {
node: string;
x: string;
y: string;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace TextChangedEvent {
type InputTuple = [
node: BytesLike,
indexedKey: string,
key: string,
value: string
];
type OutputTuple = [
node: string,
indexedKey: string,
key: string,
value: string
];
interface OutputObject {
node: string;
indexedKey: string;
key: string;
value: string;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export declare namespace VersionChangedEvent {
type InputTuple = [node: BytesLike, newVersion: BigNumberish];
type OutputTuple = [node: string, newVersion: bigint];
interface OutputObject {
node: string;
newVersion: bigint;
}
type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
type Filter = TypedDeferredTopicFilter<Event>;
type Log = TypedEventLog<Event>;
type LogDescription = TypedLogDescription<Event>;
}
export interface ENSResolver extends BaseContract {
connect(runner?: ContractRunner | null): ENSResolver;
waitForDeployment(): Promise<this>;
interface: ENSResolverInterface;
queryFilter<TCEvent extends TypedContractEvent>(event: TCEvent, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
queryFilter<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, fromBlockOrBlockhash?: string | number | undefined, toBlock?: string | number | undefined): Promise<Array<TypedEventLog<TCEvent>>>;
on<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
on<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
once<TCEvent extends TypedContractEvent>(event: TCEvent, listener: TypedListener<TCEvent>): Promise<this>;
once<TCEvent extends TypedContractEvent>(filter: TypedDeferredTopicFilter<TCEvent>, listener: TypedListener<TCEvent>): Promise<this>;
listeners<TCEvent extends TypedContractEvent>(event: TCEvent): Promise<Array<TypedListener<TCEvent>>>;
listeners(eventName?: string): Promise<Array<Listener>>;
removeAllListeners<TCEvent extends TypedContractEvent>(event?: TCEvent): Promise<this>;
ABI: TypedContractMethod<[
node: BytesLike,
contentTypes: BigNumberish
], [
[bigint, string]
], "view">;
"addr(bytes32)": TypedContractMethod<[node: BytesLike], [string], "view">;
"addr(bytes32,uint256)": TypedContractMethod<[
node: BytesLike,
coinType: BigNumberish
], [
string
], "view">;
approve: TypedContractMethod<[
node: BytesLike,
delegate: AddressLike,
approved: boolean
], [
void
], "nonpayable">;
clearRecords: TypedContractMethod<[node: BytesLike], [void], "nonpayable">;
contenthash: TypedContractMethod<[node: BytesLike], [string], "view">;
dnsRecord: TypedContractMethod<[
node: BytesLike,
name: BytesLike,
resource: BigNumberish
], [
string
], "view">;
hasDNSRecords: TypedContractMethod<[
node: BytesLike,
name: BytesLike
], [
boolean
], "view">;
interfaceImplementer: TypedContractMethod<[
node: BytesLike,
interfaceID: BytesLike
], [
string
], "view">;
isApprovedFor: TypedContractMethod<[
owner: AddressLike,
node: BytesLike,
delegate: AddressLike
], [
boolean
], "view">;
isApprovedForAll: TypedContractMethod<[
account: AddressLike,
operator: AddressLike
], [
boolean
], "view">;
multicall: TypedContractMethod<[data: BytesLike[]], [string[]], "nonpayable">;
multicallWithNodeCheck: TypedContractMethod<[
nodehash: BytesLike,
data: BytesLike[]
], [
string[]
], "nonpayable">;
name: TypedContractMethod<[node: BytesLike], [string], "view">;
pubkey: TypedContractMethod<[
node: BytesLike
], [
[string, string] & {
x: string;
y: string;
}
], "view">;
recordVersions: TypedContractMethod<[arg0: BytesLike], [bigint], "view">;
setABI: TypedContractMethod<[
node: BytesLike,
contentType: BigNumberish,
data: BytesLike
], [
void
], "nonpayable">;
"setAddr(bytes32,uint256,bytes)": TypedContractMethod<[
node: BytesLike,
coinType: BigNumberish,
a: BytesLike
], [
void
], "nonpayable">;
"setAddr(bytes32,address)": TypedContractMethod<[
node: BytesLike,
a: AddressLike
], [
void
], "nonpayable">;
setApprovalForAll: TypedContractMethod<[
operator: AddressLike,
approved: boolean
], [
void
], "nonpayable">;
setContenthash: TypedContractMethod<[
node: BytesLike,
hash: BytesLike
], [
void
], "nonpayable">;
setDNSRecords: TypedContractMethod<[
node: BytesLike,
data: BytesLike
], [
void
], "nonpayable">;
setInterface: TypedContractMethod<[
node: BytesLike,
interfaceID: BytesLike,
implementer: AddressLike
], [
void
], "nonpayable">;
setName: TypedContractMethod<[
node: BytesLike,
newName: string
], [
void
], "nonpayable">;
setPubkey: TypedContractMethod<[
node: BytesLike,
x: BytesLike,
y: BytesLike
], [
void
], "nonpayable">;
setText: TypedContractMethod<[
node: BytesLike,
key: string,
value: string
], [
void
], "nonpayable">;
setZonehash: TypedContractMethod<[
node: BytesLike,
hash: BytesLike
], [
void
], "nonpayable">;
supportsInterface: TypedContractMethod<[
interfaceID: BytesLike
], [
boolean
], "view">;
text: TypedContractMethod<[node: BytesLike, key: string], [string], "view">;
zonehash: TypedContractMethod<[node: BytesLike], [string], "view">;
getFunction<T extends ContractMethod = ContractMethod>(key: string | FunctionFragment): T;
getFunction(nameOrSignature: "ABI"): TypedContractMethod<[
node: BytesLike,
contentTypes: BigNumberish
], [
[bigint, string]
], "view">;
getFunction(nameOrSignature: "addr(bytes32)"): TypedContractMethod<[node: BytesLike], [string], "view">;
getFunction(nameOrSignature: "addr(bytes32,uint256)"): TypedContractMethod<[
node: BytesLike,
coinType: BigNumberish
], [
string
], "view">;
getFunction(nameOrSignature: "approve"): TypedContractMethod<[
node: BytesLike,
delegate: AddressLike,
approved: boolean
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "clearRecords"): TypedContractMethod<[node: BytesLike], [void], "nonpayable">;
getFunction(nameOrSignature: "contenthash"): TypedContractMethod<[node: BytesLike], [string], "view">;
getFunction(nameOrSignature: "dnsRecord"): TypedContractMethod<[
node: BytesLike,
name: BytesLike,
resource: BigNumberish
], [
string
], "view">;
getFunction(nameOrSignature: "hasDNSRecords"): TypedContractMethod<[node: BytesLike, name: BytesLike], [boolean], "view">;
getFunction(nameOrSignature: "interfaceImplementer"): TypedContractMethod<[
node: BytesLike,
interfaceID: BytesLike
], [
string
], "view">;
getFunction(nameOrSignature: "isApprovedFor"): TypedContractMethod<[
owner: AddressLike,
node: BytesLike,
delegate: AddressLike
], [
boolean
], "view">;
getFunction(nameOrSignature: "isApprovedForAll"): TypedContractMethod<[
account: AddressLike,
operator: AddressLike
], [
boolean
], "view">;
getFunction(nameOrSignature: "multicall"): TypedContractMethod<[data: BytesLike[]], [string[]], "nonpayable">;
getFunction(nameOrSignature: "multicallWithNodeCheck"): TypedContractMethod<[
nodehash: BytesLike,
data: BytesLike[]
], [
string[]
], "nonpayable">;
getFunction(nameOrSignature: "name"): TypedContractMethod<[node: BytesLike], [string], "view">;
getFunction(nameOrSignature: "pubkey"): TypedContractMethod<[
node: BytesLike
], [
[string, string] & {
x: string;
y: string;
}
], "view">;
getFunction(nameOrSignature: "recordVersions"): TypedContractMethod<[arg0: BytesLike], [bigint], "view">;
getFunction(nameOrSignature: "setABI"): TypedContractMethod<[
node: BytesLike,
contentType: BigNumberish,
data: BytesLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "setAddr(bytes32,uint256,bytes)"): TypedContractMethod<[
node: BytesLike,
coinType: BigNumberish,
a: BytesLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "setAddr(bytes32,address)"): TypedContractMethod<[
node: BytesLike,
a: AddressLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "setApprovalForAll"): TypedContractMethod<[
operator: AddressLike,
approved: boolean
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "setContenthash"): TypedContractMethod<[
node: BytesLike,
hash: BytesLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "setDNSRecords"): TypedContractMethod<[
node: BytesLike,
data: BytesLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "setInterface"): TypedContractMethod<[
node: BytesLike,
interfaceID: BytesLike,
implementer: AddressLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "setName"): TypedContractMethod<[
node: BytesLike,
newName: string
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "setPubkey"): TypedContractMethod<[
node: BytesLike,
x: BytesLike,
y: BytesLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "setText"): TypedContractMethod<[
node: BytesLike,
key: string,
value: string
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "setZonehash"): TypedContractMethod<[
node: BytesLike,
hash: BytesLike
], [
void
], "nonpayable">;
getFunction(nameOrSignature: "supportsInterface"): TypedContractMethod<[interfaceID: BytesLike], [boolean], "view">;
getFunction(nameOrSignature: "text"): TypedContractMethod<[node: BytesLike, key: string], [string], "view">;
getFunction(nameOrSignature: "zonehash"): TypedContractMethod<[node: BytesLike], [string], "view">;
getEvent(key: "ABIChanged"): TypedContractEvent<ABIChangedEvent.InputTuple, ABIChangedEvent.OutputTuple, ABIChangedEvent.OutputObject>;
getEvent(key: "AddrChanged"): TypedContractEvent<AddrChangedEvent.InputTuple, AddrChangedEvent.OutputTuple, AddrChangedEvent.OutputObject>;
getEvent(key: "AddressChanged"): TypedContractEvent<AddressChangedEvent.InputTuple, AddressChangedEvent.OutputTuple, AddressChangedEvent.OutputObject>;
getEvent(key: "ApprovalForAll"): TypedContractEvent<ApprovalForAllEvent.InputTuple, ApprovalForAllEvent.OutputTuple, ApprovalForAllEvent.OutputObject>;
getEvent(key: "Approved"): TypedContractEvent<ApprovedEvent.InputTuple, ApprovedEvent.OutputTuple, ApprovedEvent.OutputObject>;
getEvent(key: "ContenthashChanged"): TypedContractEvent<ContenthashChangedEvent.InputTuple, ContenthashChangedEvent.OutputTuple, ContenthashChangedEvent.OutputObject>;
getEvent(key: "DNSRecordChanged"): TypedContractEvent<DNSRecordChangedEvent.InputTuple, DNSRecordChangedEvent.OutputTuple, DNSRecordChangedEvent.OutputObject>;
getEvent(key: "DNSRecordDeleted"): TypedContractEvent<DNSRecordDeletedEvent.InputTuple, DNSRecordDeletedEvent.OutputTuple, DNSRecordDeletedEvent.OutputObject>;
getEvent(key: "DNSZonehashChanged"): TypedContractEvent<DNSZonehashChangedEvent.InputTuple, DNSZonehashChangedEvent.OutputTuple, DNSZonehashChangedEvent.OutputObject>;
getEvent(key: "InterfaceChanged"): TypedContractEvent<InterfaceChangedEvent.InputTuple, InterfaceChangedEvent.OutputTuple, InterfaceChangedEvent.OutputObject>;
getEvent(key: "NameChanged"): TypedContractEvent<NameChangedEvent.InputTuple, NameChangedEvent.OutputTuple, NameChangedEvent.OutputObject>;
getEvent(key: "PubkeyChanged"): TypedContractEvent<PubkeyChangedEvent.InputTuple, PubkeyChangedEvent.OutputTuple, PubkeyChangedEvent.OutputObject>;
getEvent(key: "TextChanged"): TypedContractEvent<TextChangedEvent.InputTuple, TextChangedEvent.OutputTuple, TextChangedEvent.OutputObject>;
getEvent(key: "VersionChanged"): TypedContractEvent<VersionChangedEvent.InputTuple, VersionChangedEvent.OutputTuple, VersionChangedEvent.OutputObject>;
filters: {
"ABIChanged(bytes32,uint256)": TypedContractEvent<ABIChangedEvent.InputTuple, ABIChangedEvent.OutputTuple, ABIChangedEvent.OutputObject>;
ABIChanged: TypedContractEvent<ABIChangedEvent.InputTuple, ABIChangedEvent.OutputTuple, ABIChangedEvent.OutputObject>;
"AddrChanged(bytes32,address)": TypedContractEvent<AddrChangedEvent.InputTuple, AddrChangedEvent.OutputTuple, AddrChangedEvent.OutputObject>;
AddrChanged: TypedContractEvent<AddrChangedEvent.InputTuple, AddrChangedEvent.OutputTuple, AddrChangedEvent.OutputObject>;
"AddressChanged(bytes32,uint256,bytes)": TypedContractEvent<AddressChangedEvent.InputTuple, AddressChangedEvent.OutputTuple, AddressChangedEvent.OutputObject>;
AddressChanged: TypedContractEvent<AddressChangedEvent.InputTuple, AddressChangedEvent.OutputTuple, AddressChangedEvent.OutputObject>;
"ApprovalForAll(address,address,bool)": TypedContractEvent<ApprovalForAllEvent.InputTuple, ApprovalForAllEvent.OutputTuple, ApprovalForAllEvent.OutputObject>;
ApprovalForAll: TypedContractEvent<ApprovalForAllEvent.InputTuple, ApprovalForAllEvent.OutputTuple, ApprovalForAllEvent.OutputObject>;
"Approved(address,bytes32,address,bool)": TypedContractEvent<ApprovedEvent.InputTuple, ApprovedEvent.OutputTuple, ApprovedEvent.OutputObject>;
Approved: TypedContractEvent<ApprovedEvent.InputTuple, ApprovedEvent.OutputTuple, ApprovedEvent.OutputObject>;
"ContenthashChanged(bytes32,bytes)": TypedContractEvent<ContenthashChangedEvent.InputTuple, ContenthashChangedEvent.OutputTuple, ContenthashChangedEvent.OutputObject>;
ContenthashChanged: TypedContractEvent<ContenthashChangedEvent.InputTuple, ContenthashChangedEvent.OutputTuple, ContenthashChangedEvent.OutputObject>;
"DNSRecordChanged(bytes32,bytes,uint16,bytes)": TypedContractEvent<DNSRecordChangedEvent.InputTuple, DNSRecordChangedEvent.OutputTuple, DNSRecordChangedEvent.OutputObject>;
DNSRecordChanged: TypedContractEvent<DNSRecordChangedEvent.InputTuple, DNSRecordChangedEvent.OutputTuple, DNSRecordChangedEvent.OutputObject>;
"DNSRecordDeleted(bytes32,bytes,uint16)": TypedContractEvent<DNSRecordDeletedEvent.InputTuple, DNSRecordDeletedEvent.OutputTuple, DNSRecordDeletedEvent.OutputObject>;
DNSRecordDeleted: TypedContractEvent<DNSRecordDeletedEvent.InputTuple, DNSRecordDeletedEvent.OutputTuple, DNSRecordDeletedEvent.OutputObject>;
"DNSZonehashChanged(bytes32,bytes,bytes)": TypedContractEvent<DNSZonehashChangedEvent.InputTuple, DNSZonehashChangedEvent.OutputTuple, DNSZonehashChangedEvent.OutputObject>;
DNSZonehashChanged: TypedContractEvent<DNSZonehashChangedEvent.InputTuple, DNSZonehashChangedEvent.OutputTuple, DNSZonehashChangedEvent.OutputObject>;
"InterfaceChanged(bytes32,bytes4,address)": TypedContractEvent<InterfaceChangedEvent.InputTuple, InterfaceChangedEvent.OutputTuple, InterfaceChangedEvent.OutputObject>;
InterfaceChanged: TypedContractEvent<InterfaceChangedEvent.InputTuple, InterfaceChangedEvent.OutputTuple, InterfaceChangedEvent.OutputObject>;
"NameChanged(bytes32,string)": TypedContractEvent<NameChangedEvent.InputTuple, NameChangedEvent.OutputTuple, NameChangedEvent.OutputObject>;
NameChanged: TypedContractEvent<NameChangedEvent.InputTuple, NameChangedEvent.OutputTuple, NameChangedEvent.OutputObject>;
"PubkeyChanged(bytes32,bytes32,bytes32)": TypedContractEvent<PubkeyChangedEvent.InputTuple, PubkeyChangedEvent.OutputTuple, PubkeyChangedEvent.OutputObject>;
PubkeyChanged: TypedContractEvent<PubkeyChangedEvent.InputTuple, PubkeyChangedEvent.OutputTuple, PubkeyChangedEvent.OutputObject>;
"TextChanged(bytes32,string,string,string)": TypedContractEvent<TextChangedEvent.InputTuple, TextChangedEvent.OutputTuple, TextChangedEvent.OutputObject>;
TextChanged: TypedContractEvent<TextChangedEvent.InputTuple, TextChangedEvent.OutputTuple, TextChangedEvent.OutputObject>;
"VersionChanged(bytes32,uint64)": TypedContractEvent<VersionChangedEvent.InputTuple, VersionChangedEvent.OutputTuple, VersionChangedEvent.OutputObject>;
VersionChanged: TypedContractEvent<VersionChangedEvent.InputTuple, VersionChangedEvent.OutputTuple, VersionChangedEvent.OutputObject>;
};
}

File diff suppressed because it is too large Load Diff

@ -0,0 +1,337 @@
import { type ContractRunner } from "ethers";
import type { ENSRegistry, ENSRegistryInterface } from "../ENSRegistry";
export declare class ENSRegistry__factory {
static readonly 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";
}];
static createInterface(): ENSRegistryInterface;
static connect(address: string, runner?: ContractRunner | null): ENSRegistry;
}

@ -0,0 +1,789 @@
import { type ContractRunner } from "ethers";
import type { ENSResolver, ENSResolverInterface } from "../ENSResolver";
export declare class ENSResolver__factory {
static readonly abi: readonly [{
readonly inputs: readonly [{
readonly internalType: "contract ENS";
readonly name: "_ens";
readonly type: "address";
}, {
readonly internalType: "contract INameWrapper";
readonly name: "wrapperAddress";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "_trustedETHController";
readonly type: "address";
}, {
readonly internalType: "address";
readonly name: "_trustedReverseRegistrar";
readonly type: "address";
}];
readonly stateMutability: "nonpayable";
readonly type: "constructor";
}, {
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: "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: "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 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: "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 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: "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 stateMutability: "view";
readonly type: "function";
}, {
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 stateMutability: "view";
readonly type: "function";
}, {
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 stateMutability: "view";
readonly type: "function";
}, {
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: "bytes32";
readonly name: "node";
readonly type: "bytes32";
}];
readonly name: "contenthash";
readonly outputs: readonly [{
readonly internalType: "bytes";
readonly name: "";
readonly type: "bytes";
}];
readonly stateMutability: "view";
readonly type: "function";
}, {
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 stateMutability: "view";
readonly type: "function";
}, {
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 stateMutability: "view";
readonly type: "function";
}, {
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 stateMutability: "view";
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: "bytes[]";
readonly name: "data";
readonly type: "bytes[]";
}];
readonly name: "multicall";
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: "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: "node";
readonly type: "bytes32";
}];
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: "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 stateMutability: "view";
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: "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 stateMutability: "nonpayable";
readonly type: "function";
}, {
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 stateMutability: "nonpayable";
readonly type: "function";
}, {
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 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: "node";
readonly type: "bytes32";
}, {
readonly internalType: "bytes";
readonly name: "hash";
readonly type: "bytes";
}];
readonly name: "setContenthash";
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: "data";
readonly type: "bytes";
}];
readonly name: "setDNSRecords";
readonly outputs: readonly [];
readonly stateMutability: "nonpayable";
readonly type: "function";
}, {
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 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: "bytes32";
readonly name: "x";
readonly type: "bytes32";
}, {
readonly internalType: "bytes32";
readonly name: "y";
readonly type: "bytes32";
}];
readonly name: "setPubkey";
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: "key";
readonly type: "string";
}, {
readonly internalType: "string";
readonly name: "value";
readonly type: "string";
}];
readonly name: "setText";
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 internalType: "string";
readonly name: "key";
readonly type: "string";
}];
readonly name: "text";
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: "node";
readonly type: "bytes32";
}];
readonly name: "zonehash";
readonly outputs: readonly [{
readonly internalType: "bytes";
readonly name: "";
readonly type: "bytes";
}];
readonly stateMutability: "view";
readonly type: "function";
}];
static createInterface(): ENSResolverInterface;
static connect(address: string, runner?: ContractRunner | null): ENSResolver;
}

@ -1,4 +1,7 @@
export { ENS__factory } from "./ENS__factory";
export { ENSNameWrapper__factory } from "./ENSNameWrapper__factory";
export { ENSRegistry__factory } from "./ENSRegistry__factory";
export { ENSResolver__factory } from "./ENSResolver__factory";
export { ERC20__factory } from "./ERC20__factory";
export { Multicall__factory } from "./Multicall__factory";
export { OffchainOracle__factory } from "./OffchainOracle__factory";

@ -1,4 +1,7 @@
export type { ENS } from "./ENS";
export type { ENSNameWrapper } from "./ENSNameWrapper";
export type { ENSRegistry } from "./ENSRegistry";
export type { ENSResolver } from "./ENSResolver";
export type { ERC20 } from "./ERC20";
export type { Multicall } from "./Multicall";
export type { OffchainOracle } from "./OffchainOracle";
@ -6,6 +9,9 @@ export type { OvmGasPriceOracle } from "./OvmGasPriceOracle";
export type { ReverseRecords } from "./ReverseRecords";
export * as factories from "./factories";
export { ENS__factory } from "./factories/ENS__factory";
export { ENSNameWrapper__factory } from "./factories/ENSNameWrapper__factory";
export { ENSRegistry__factory } from "./factories/ENSRegistry__factory";
export { ENSResolver__factory } from "./factories/ENSResolver__factory";
export { ERC20__factory } from "./factories/ERC20__factory";
export { Multicall__factory } from "./factories/Multicall__factory";
export { OffchainOracle__factory } from "./factories/OffchainOracle__factory";

1
dist/utils.d.ts vendored

@ -24,4 +24,5 @@ export declare function bigIntReplacer(key: any, value: any): any;
export declare function substring(str: string, length?: number): string;
export declare function digest(bytes: Uint8Array, algo?: string): Promise<Uint8Array>;
export declare function numberFormatter(num: string | number | bigint, digits?: number): string;
export declare function isHex(value: string): boolean;
export {};

File diff suppressed because one or more lines are too long

1
src/abi/ENSRegistry.json Normal file

@ -0,0 +1 @@
[{"inputs":[{"internalType":"contract ENS","name":"_old","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"label","type":"bytes32"},{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"NewOwner","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"address","name":"resolver","type":"address"}],"name":"NewResolver","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"uint64","name":"ttl","type":"uint64"}],"name":"NewTTL","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"node","type":"bytes32"},{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"Transfer","type":"event"},{"constant":true,"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"old","outputs":[{"internalType":"contract ENS","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"recordExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"resolver","outputs":[{"internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"name":"setOwner","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"resolver","type":"address"},{"internalType":"uint64","name":"ttl","type":"uint64"}],"name":"setRecord","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"address","name":"resolver","type":"address"}],"name":"setResolver","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"bytes32","name":"label","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"}],"name":"setSubnodeOwner","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"bytes32","name":"label","type":"bytes32"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"resolver","type":"address"},{"internalType":"uint64","name":"ttl","type":"uint64"}],"name":"setSubnodeRecord","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":false,"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"},{"internalType":"uint64","name":"ttl","type":"uint64"}],"name":"setTTL","outputs":[],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"internalType":"bytes32","name":"node","type":"bytes32"}],"name":"ttl","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"payable":false,"stateMutability":"view","type":"function"}]

1
src/abi/ENSResolver.json Normal file

File diff suppressed because one or more lines are too long

@ -8,4 +8,10 @@ export {
OvmGasPriceOracle__factory,
ReverseRecords,
ReverseRecords__factory,
ENSNameWrapper,
ENSNameWrapper__factory,
ENSRegistry,
ENSRegistry__factory,
ENSResolver,
ENSResolver__factory,
} from './typechain';

145
src/ens.ts Normal file

@ -0,0 +1,145 @@
import { namehash, EnsResolver, AbstractProvider, keccak256, Signer } from 'ethers';
import {
ENSNameWrapper,
ENSNameWrapper__factory,
ENSRegistry,
ENSRegistry__factory,
ENSResolver,
ENSResolver__factory,
} from './typechain';
import { bytesToHex, isHex } from './utils';
import { NetId, NetIdType } from './networkConfig';
export function encodedLabelToLabelhash(label: string): string | null {
if (label.length !== 66) return null;
if (label.indexOf('[') !== 0) return null;
if (label.indexOf(']') !== 65) return null;
const hash = `0x${label.slice(1, 65)}`;
if (!isHex(hash)) return null;
return hash;
}
export function labelhash(label: string) {
if (!label) {
return bytesToHex(new Uint8Array(32).fill(0));
}
return encodedLabelToLabelhash(label) || keccak256(new TextEncoder().encode(label));
}
export function makeLabelNodeAndParent(name: string) {
const labels = name.split('.');
const label = labels.shift() as string;
const parentNode = namehash(labels.join('.'));
return {
label,
labelhash: labelhash(label),
parentNode,
};
}
// https://github.com/ensdomains/ensjs/blob/main/packages/ensjs/src/contracts/consts.ts
export const EnsContracts: {
[key: NetIdType]: {
ensRegistry: string;
ensPublicResolver: string;
ensNameWrapper: string;
};
} = {
[NetId.MAINNET]: {
ensRegistry: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
ensPublicResolver: '0x231b0Ee14048e9dCcD1d247744d114a4EB5E8E63',
ensNameWrapper: '0xD4416b13d2b3a9aBae7AcD5D6C2BbDBE25686401',
},
[NetId.SEPOLIA]: {
ensRegistry: '0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e',
ensPublicResolver: '0x8FADE66B79cC9f707aB26799354482EB93a5B7dD',
ensNameWrapper: '0x0635513f179D50A207757E05759CbD106d7dFcE8',
},
};
/**
* ENSUtils to manage on-chain registered relayers
*/
export class ENSUtils {
ENSRegistry?: ENSRegistry;
ENSResolver?: ENSResolver;
ENSNameWrapper?: ENSNameWrapper;
provider: AbstractProvider;
constructor(provider: AbstractProvider) {
this.provider = provider;
}
async getContracts() {
const { chainId } = await this.provider.getNetwork();
const { ensRegistry, ensPublicResolver, ensNameWrapper } = EnsContracts[Number(chainId)];
this.ENSRegistry = ENSRegistry__factory.connect(ensRegistry, this.provider);
this.ENSResolver = ENSResolver__factory.connect(ensPublicResolver, this.provider);
this.ENSNameWrapper = ENSNameWrapper__factory.connect(ensNameWrapper, this.provider);
}
async getOwner(name: string) {
if (!this.ENSRegistry) {
await this.getContracts();
}
return (this.ENSRegistry as ENSRegistry).owner(namehash(name));
}
// nameWrapper connected with wallet signer
async unwrap(signer: Signer, name: string) {
if (!this.ENSNameWrapper) {
await this.getContracts();
}
const owner = (signer as unknown as { address: string }).address;
const nameWrapper = (this.ENSNameWrapper as ENSNameWrapper).connect(signer);
const { labelhash } = makeLabelNodeAndParent(name);
return nameWrapper.unwrapETH2LD(labelhash, owner, owner);
}
// https://github.com/ensdomains/ensjs/blob/main/packages/ensjs/src/functions/wallet/createSubname.ts
async setSubnodeRecord(signer: Signer, name: string) {
if (!this.ENSResolver) {
await this.getContracts();
}
const resolver = this.ENSResolver as ENSResolver;
const registry = (this.ENSRegistry as ENSRegistry).connect(signer);
const owner = (signer as unknown as { address: string }).address;
const { labelhash, parentNode } = makeLabelNodeAndParent(name);
return registry.setSubnodeRecord(parentNode, labelhash, owner, resolver.target, BigInt(0));
}
// https://github.com/ensdomains/ensjs/blob/main/packages/ensjs/src/functions/wallet/setTextRecord.ts
async setText(signer: Signer, name: string, key: string, value: string) {
const resolver = ENSResolver__factory.connect((await this.getResolver(name))?.address as string, signer);
return resolver.setText(namehash(name), key, value);
}
getResolver(name: string) {
return EnsResolver.fromName(this.provider, name);
}
async getText(name: string, key: string) {
const resolver = await this.getResolver(name);
// Retuns null if the name doesn't exist
if (!resolver) {
return resolver;
}
return (await resolver.getText(key)) || '';
}
}

@ -1009,7 +1009,7 @@ export async function getTovarishNetworks(registryService: BaseRegistryService,
*/
export interface CachedRelayerInfo extends RelayerParams {
isRegistered?: boolean;
owner?: string;
registeredAddress?: string;
stakeBalance?: string;
hostnames: SubdomainMap;
tovarishHost?: string;
@ -1021,7 +1021,7 @@ export interface CachedRelayerInfo extends RelayerParams {
* This relayer isn't compatible with the current UI (tornadocash.eth) and only works as experimental mode
* Once DAO approves changes to UI to support new Tovarish Relayer software register relayer and remove static list
*/
const staticRelayers = [
const staticRelayers: CachedRelayerInfo[] = [
{
ensName: 'tornadowithdraw.eth',
relayerAddress: '0x40c3d1656a26C9266f4A10fed0D87EFf79F54E64',
@ -1029,7 +1029,7 @@ const staticRelayers = [
tovarishHost: 'tornadowithdraw.com',
tovarishNetworks: enabledChains,
},
] as CachedRelayerInfo[];
];
export interface CachedRelayers {
lastBlock: number;
@ -1167,17 +1167,16 @@ export class BaseRegistryService extends BaseEventsService<RegistersEvents> {
return acc;
}, {} as SubdomainMap);
const isOwner = !relayerAddress || relayerAddress === owner;
const hasMinBalance = stakeBalance >= MIN_STAKE_BALANCE;
const preCondition = Object.keys(hostnames).length && isOwner && isRegistered && hasMinBalance;
const preCondition = Object.keys(hostnames).length && isRegistered && hasMinBalance;
if (preCondition) {
return {
ensName,
relayerAddress,
relayerAddress: owner,
registeredAddress: owner !== relayerAddress ? relayerAddress : undefined,
isRegistered,
owner,
stakeBalance: formatEther(stakeBalance),
hostnames,
tovarishHost,

@ -5,6 +5,7 @@ export * from './typechain';
export * from './batch';
export * from './deposits';
export * from './encryptedNotes';
export * from './ens';
export * from './fees';
export * from './gaszip';
export * from './idb';

File diff suppressed because it is too large Load Diff

@ -0,0 +1,497 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import type {
BaseContract,
BigNumberish,
BytesLike,
FunctionFragment,
Result,
Interface,
EventFragment,
AddressLike,
ContractRunner,
ContractMethod,
Listener,
} from "ethers";
import type {
TypedContractEvent,
TypedDeferredTopicFilter,
TypedEventLog,
TypedLogDescription,
TypedListener,
TypedContractMethod,
} from "./common";
export interface ENSRegistryInterface extends Interface {
getFunction(
nameOrSignature:
| "isApprovedForAll"
| "old"
| "owner"
| "recordExists"
| "resolver"
| "setApprovalForAll"
| "setOwner"
| "setRecord"
| "setResolver"
| "setSubnodeOwner"
| "setSubnodeRecord"
| "setTTL"
| "ttl"
): FunctionFragment;
getEvent(
nameOrSignatureOrTopic:
| "ApprovalForAll"
| "NewOwner"
| "NewResolver"
| "NewTTL"
| "Transfer"
): EventFragment;
encodeFunctionData(
functionFragment: "isApprovedForAll",
values: [AddressLike, AddressLike]
): string;
encodeFunctionData(functionFragment: "old", values?: undefined): string;
encodeFunctionData(functionFragment: "owner", values: [BytesLike]): string;
encodeFunctionData(
functionFragment: "recordExists",
values: [BytesLike]
): string;
encodeFunctionData(functionFragment: "resolver", values: [BytesLike]): string;
encodeFunctionData(
functionFragment: "setApprovalForAll",
values: [AddressLike, boolean]
): string;
encodeFunctionData(
functionFragment: "setOwner",
values: [BytesLike, AddressLike]
): string;
encodeFunctionData(
functionFragment: "setRecord",
values: [BytesLike, AddressLike, AddressLike, BigNumberish]
): string;
encodeFunctionData(
functionFragment: "setResolver",
values: [BytesLike, AddressLike]
): string;
encodeFunctionData(
functionFragment: "setSubnodeOwner",
values: [BytesLike, BytesLike, AddressLike]
): string;
encodeFunctionData(
functionFragment: "setSubnodeRecord",
values: [BytesLike, BytesLike, AddressLike, AddressLike, BigNumberish]
): string;
encodeFunctionData(
functionFragment: "setTTL",
values: [BytesLike, BigNumberish]
): string;
encodeFunctionData(functionFragment: "ttl", values: [BytesLike]): string;
decodeFunctionResult(
functionFragment: "isApprovedForAll",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "old", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "owner", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "recordExists",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "resolver", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "setApprovalForAll",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "setOwner", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "setRecord", data: BytesLike): Result;
decodeFunctionResult(
functionFragment: "setResolver",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "setSubnodeOwner",
data: BytesLike
): Result;
decodeFunctionResult(
functionFragment: "setSubnodeRecord",
data: BytesLike
): Result;
decodeFunctionResult(functionFragment: "setTTL", data: BytesLike): Result;
decodeFunctionResult(functionFragment: "ttl", data: BytesLike): Result;
}
export namespace ApprovalForAllEvent {
export type InputTuple = [
owner: AddressLike,
operator: AddressLike,
approved: boolean
];
export type OutputTuple = [
owner: string,
operator: string,
approved: boolean
];
export interface OutputObject {
owner: string;
operator: string;
approved: boolean;
}
export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
export type Filter = TypedDeferredTopicFilter<Event>;
export type Log = TypedEventLog<Event>;
export type LogDescription = TypedLogDescription<Event>;
}
export namespace NewOwnerEvent {
export type InputTuple = [
node: BytesLike,
label: BytesLike,
owner: AddressLike
];
export type OutputTuple = [node: string, label: string, owner: string];
export interface OutputObject {
node: string;
label: string;
owner: string;
}
export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
export type Filter = TypedDeferredTopicFilter<Event>;
export type Log = TypedEventLog<Event>;
export type LogDescription = TypedLogDescription<Event>;
}
export namespace NewResolverEvent {
export type InputTuple = [node: BytesLike, resolver: AddressLike];
export type OutputTuple = [node: string, resolver: string];
export interface OutputObject {
node: string;
resolver: string;
}
export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
export type Filter = TypedDeferredTopicFilter<Event>;
export type Log = TypedEventLog<Event>;
export type LogDescription = TypedLogDescription<Event>;
}
export namespace NewTTLEvent {
export type InputTuple = [node: BytesLike, ttl: BigNumberish];
export type OutputTuple = [node: string, ttl: bigint];
export interface OutputObject {
node: string;
ttl: bigint;
}
export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
export type Filter = TypedDeferredTopicFilter<Event>;
export type Log = TypedEventLog<Event>;
export type LogDescription = TypedLogDescription<Event>;
}
export namespace TransferEvent {
export type InputTuple = [node: BytesLike, owner: AddressLike];
export type OutputTuple = [node: string, owner: string];
export interface OutputObject {
node: string;
owner: string;
}
export type Event = TypedContractEvent<InputTuple, OutputTuple, OutputObject>;
export type Filter = TypedDeferredTopicFilter<Event>;
export type Log = TypedEventLog<Event>;
export type LogDescription = TypedLogDescription<Event>;
}
export interface ENSRegistry extends BaseContract {
connect(runner?: ContractRunner | null): ENSRegistry;
waitForDeployment(): Promise<this>;
interface: ENSRegistryInterface;
queryFilter<TCEvent extends TypedContractEvent>(
event: TCEvent,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEventLog<TCEvent>>>;
queryFilter<TCEvent extends TypedContractEvent>(
filter: TypedDeferredTopicFilter<TCEvent>,
fromBlockOrBlockhash?: string | number | undefined,
toBlock?: string | number | undefined
): Promise<Array<TypedEventLog<TCEvent>>>;
on<TCEvent extends TypedContractEvent>(
event: TCEvent,
listener: TypedListener<TCEvent>
): Promise<this>;
on<TCEvent extends TypedContractEvent>(
filter: TypedDeferredTopicFilter<TCEvent>,
listener: TypedListener<TCEvent>
): Promise<this>;
once<TCEvent extends TypedContractEvent>(
event: TCEvent,
listener: TypedListener<TCEvent>
): Promise<this>;
once<TCEvent extends TypedContractEvent>(
filter: TypedDeferredTopicFilter<TCEvent>,
listener: TypedListener<TCEvent>
): Promise<this>;
listeners<TCEvent extends TypedContractEvent>(
event: TCEvent
): Promise<Array<TypedListener<TCEvent>>>;
listeners(eventName?: string): Promise<Array<Listener>>;
removeAllListeners<TCEvent extends TypedContractEvent>(
event?: TCEvent
): Promise<this>;
isApprovedForAll: TypedContractMethod<
[owner: AddressLike, operator: AddressLike],
[boolean],
"view"
>;
old: TypedContractMethod<[], [string], "view">;
owner: TypedContractMethod<[node: BytesLike], [string], "view">;
recordExists: TypedContractMethod<[node: BytesLike], [boolean], "view">;
resolver: TypedContractMethod<[node: BytesLike], [string], "view">;
setApprovalForAll: TypedContractMethod<
[operator: AddressLike, approved: boolean],
[void],
"nonpayable"
>;
setOwner: TypedContractMethod<
[node: BytesLike, owner: AddressLike],
[void],
"nonpayable"
>;
setRecord: TypedContractMethod<
[
node: BytesLike,
owner: AddressLike,
resolver: AddressLike,
ttl: BigNumberish
],
[void],
"nonpayable"
>;
setResolver: TypedContractMethod<
[node: BytesLike, resolver: AddressLike],
[void],
"nonpayable"
>;
setSubnodeOwner: TypedContractMethod<
[node: BytesLike, label: BytesLike, owner: AddressLike],
[string],
"nonpayable"
>;
setSubnodeRecord: TypedContractMethod<
[
node: BytesLike,
label: BytesLike,
owner: AddressLike,
resolver: AddressLike,
ttl: BigNumberish
],
[void],
"nonpayable"
>;
setTTL: TypedContractMethod<
[node: BytesLike, ttl: BigNumberish],
[void],
"nonpayable"
>;
ttl: TypedContractMethod<[node: BytesLike], [bigint], "view">;
getFunction<T extends ContractMethod = ContractMethod>(
key: string | FunctionFragment
): T;
getFunction(
nameOrSignature: "isApprovedForAll"
): TypedContractMethod<
[owner: AddressLike, operator: AddressLike],
[boolean],
"view"
>;
getFunction(
nameOrSignature: "old"
): TypedContractMethod<[], [string], "view">;
getFunction(
nameOrSignature: "owner"
): TypedContractMethod<[node: BytesLike], [string], "view">;
getFunction(
nameOrSignature: "recordExists"
): TypedContractMethod<[node: BytesLike], [boolean], "view">;
getFunction(
nameOrSignature: "resolver"
): TypedContractMethod<[node: BytesLike], [string], "view">;
getFunction(
nameOrSignature: "setApprovalForAll"
): TypedContractMethod<
[operator: AddressLike, approved: boolean],
[void],
"nonpayable"
>;
getFunction(
nameOrSignature: "setOwner"
): TypedContractMethod<
[node: BytesLike, owner: AddressLike],
[void],
"nonpayable"
>;
getFunction(
nameOrSignature: "setRecord"
): TypedContractMethod<
[
node: BytesLike,
owner: AddressLike,
resolver: AddressLike,
ttl: BigNumberish
],
[void],
"nonpayable"
>;
getFunction(
nameOrSignature: "setResolver"
): TypedContractMethod<
[node: BytesLike, resolver: AddressLike],
[void],
"nonpayable"
>;
getFunction(
nameOrSignature: "setSubnodeOwner"
): TypedContractMethod<
[node: BytesLike, label: BytesLike, owner: AddressLike],
[string],
"nonpayable"
>;
getFunction(
nameOrSignature: "setSubnodeRecord"
): TypedContractMethod<
[
node: BytesLike,
label: BytesLike,
owner: AddressLike,
resolver: AddressLike,
ttl: BigNumberish
],
[void],
"nonpayable"
>;
getFunction(
nameOrSignature: "setTTL"
): TypedContractMethod<
[node: BytesLike, ttl: BigNumberish],
[void],
"nonpayable"
>;
getFunction(
nameOrSignature: "ttl"
): TypedContractMethod<[node: BytesLike], [bigint], "view">;
getEvent(
key: "ApprovalForAll"
): TypedContractEvent<
ApprovalForAllEvent.InputTuple,
ApprovalForAllEvent.OutputTuple,
ApprovalForAllEvent.OutputObject
>;
getEvent(
key: "NewOwner"
): TypedContractEvent<
NewOwnerEvent.InputTuple,
NewOwnerEvent.OutputTuple,
NewOwnerEvent.OutputObject
>;
getEvent(
key: "NewResolver"
): TypedContractEvent<
NewResolverEvent.InputTuple,
NewResolverEvent.OutputTuple,
NewResolverEvent.OutputObject
>;
getEvent(
key: "NewTTL"
): TypedContractEvent<
NewTTLEvent.InputTuple,
NewTTLEvent.OutputTuple,
NewTTLEvent.OutputObject
>;
getEvent(
key: "Transfer"
): TypedContractEvent<
TransferEvent.InputTuple,
TransferEvent.OutputTuple,
TransferEvent.OutputObject
>;
filters: {
"ApprovalForAll(address,address,bool)": TypedContractEvent<
ApprovalForAllEvent.InputTuple,
ApprovalForAllEvent.OutputTuple,
ApprovalForAllEvent.OutputObject
>;
ApprovalForAll: TypedContractEvent<
ApprovalForAllEvent.InputTuple,
ApprovalForAllEvent.OutputTuple,
ApprovalForAllEvent.OutputObject
>;
"NewOwner(bytes32,bytes32,address)": TypedContractEvent<
NewOwnerEvent.InputTuple,
NewOwnerEvent.OutputTuple,
NewOwnerEvent.OutputObject
>;
NewOwner: TypedContractEvent<
NewOwnerEvent.InputTuple,
NewOwnerEvent.OutputTuple,
NewOwnerEvent.OutputObject
>;
"NewResolver(bytes32,address)": TypedContractEvent<
NewResolverEvent.InputTuple,
NewResolverEvent.OutputTuple,
NewResolverEvent.OutputObject
>;
NewResolver: TypedContractEvent<
NewResolverEvent.InputTuple,
NewResolverEvent.OutputTuple,
NewResolverEvent.OutputObject
>;
"NewTTL(bytes32,uint64)": TypedContractEvent<
NewTTLEvent.InputTuple,
NewTTLEvent.OutputTuple,
NewTTLEvent.OutputObject
>;
NewTTL: TypedContractEvent<
NewTTLEvent.InputTuple,
NewTTLEvent.OutputTuple,
NewTTLEvent.OutputObject
>;
"Transfer(bytes32,address)": TypedContractEvent<
TransferEvent.InputTuple,
TransferEvent.OutputTuple,
TransferEvent.OutputObject
>;
Transfer: TypedContractEvent<
TransferEvent.InputTuple,
TransferEvent.OutputTuple,
TransferEvent.OutputObject
>;
};
}

1157
src/typechain/ENSResolver.ts Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -0,0 +1,439 @@
/* Autogenerated file. Do not edit manually. */
/* tslint:disable */
/* eslint-disable */
import { Contract, Interface, type ContractRunner } from "ethers";
import type { ENSRegistry, ENSRegistryInterface } from "../ENSRegistry";
const _abi = [
{
inputs: [
{
internalType: "contract ENS",
name: "_old",
type: "address",
},
],
payable: false,
stateMutability: "nonpayable",
type: "constructor",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "address",
name: "owner",
type: "address",
},
{
indexed: true,
internalType: "address",
name: "operator",
type: "address",
},
{
indexed: false,
internalType: "bool",
name: "approved",
type: "bool",
},
],
name: "ApprovalForAll",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "bytes32",
name: "node",
type: "bytes32",
},
{
indexed: true,
internalType: "bytes32",
name: "label",
type: "bytes32",
},
{
indexed: false,
internalType: "address",
name: "owner",
type: "address",
},
],
name: "NewOwner",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "bytes32",
name: "node",
type: "bytes32",
},
{
indexed: false,
internalType: "address",
name: "resolver",
type: "address",
},
],
name: "NewResolver",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "bytes32",
name: "node",
type: "bytes32",
},
{
indexed: false,
internalType: "uint64",
name: "ttl",
type: "uint64",
},
],
name: "NewTTL",
type: "event",
},
{
anonymous: false,
inputs: [
{
indexed: true,
internalType: "bytes32",
name: "node",
type: "bytes32",
},
{
indexed: false,
internalType: "address",
name: "owner",
type: "address",
},
],
name: "Transfer",
type: "event",
},
{
constant: true,
inputs: [
{
internalType: "address",
name: "owner",
type: "address",
},
{
internalType: "address",
name: "operator",
type: "address",
},
],
name: "isApprovedForAll",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: true,
inputs: [],
name: "old",
outputs: [
{
internalType: "contract ENS",
name: "",
type: "address",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: true,
inputs: [
{
internalType: "bytes32",
name: "node",
type: "bytes32",
},
],
name: "owner",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: true,
inputs: [
{
internalType: "bytes32",
name: "node",
type: "bytes32",
},
],
name: "recordExists",
outputs: [
{
internalType: "bool",
name: "",
type: "bool",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: true,
inputs: [
{
internalType: "bytes32",
name: "node",
type: "bytes32",
},
],
name: "resolver",
outputs: [
{
internalType: "address",
name: "",
type: "address",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
{
constant: false,
inputs: [
{
internalType: "address",
name: "operator",
type: "address",
},
{
internalType: "bool",
name: "approved",
type: "bool",
},
],
name: "setApprovalForAll",
outputs: [],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: false,
inputs: [
{
internalType: "bytes32",
name: "node",
type: "bytes32",
},
{
internalType: "address",
name: "owner",
type: "address",
},
],
name: "setOwner",
outputs: [],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: false,
inputs: [
{
internalType: "bytes32",
name: "node",
type: "bytes32",
},
{
internalType: "address",
name: "owner",
type: "address",
},
{
internalType: "address",
name: "resolver",
type: "address",
},
{
internalType: "uint64",
name: "ttl",
type: "uint64",
},
],
name: "setRecord",
outputs: [],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: false,
inputs: [
{
internalType: "bytes32",
name: "node",
type: "bytes32",
},
{
internalType: "address",
name: "resolver",
type: "address",
},
],
name: "setResolver",
outputs: [],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: false,
inputs: [
{
internalType: "bytes32",
name: "node",
type: "bytes32",
},
{
internalType: "bytes32",
name: "label",
type: "bytes32",
},
{
internalType: "address",
name: "owner",
type: "address",
},
],
name: "setSubnodeOwner",
outputs: [
{
internalType: "bytes32",
name: "",
type: "bytes32",
},
],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: false,
inputs: [
{
internalType: "bytes32",
name: "node",
type: "bytes32",
},
{
internalType: "bytes32",
name: "label",
type: "bytes32",
},
{
internalType: "address",
name: "owner",
type: "address",
},
{
internalType: "address",
name: "resolver",
type: "address",
},
{
internalType: "uint64",
name: "ttl",
type: "uint64",
},
],
name: "setSubnodeRecord",
outputs: [],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: false,
inputs: [
{
internalType: "bytes32",
name: "node",
type: "bytes32",
},
{
internalType: "uint64",
name: "ttl",
type: "uint64",
},
],
name: "setTTL",
outputs: [],
payable: false,
stateMutability: "nonpayable",
type: "function",
},
{
constant: true,
inputs: [
{
internalType: "bytes32",
name: "node",
type: "bytes32",
},
],
name: "ttl",
outputs: [
{
internalType: "uint64",
name: "",
type: "uint64",
},
],
payable: false,
stateMutability: "view",
type: "function",
},
] as const;
export class ENSRegistry__factory {
static readonly abi = _abi;
static createInterface(): ENSRegistryInterface {
return new Interface(_abi) as ENSRegistryInterface;
}
static connect(address: string, runner?: ContractRunner | null): ENSRegistry {
return new Contract(address, _abi, runner) as unknown as ENSRegistry;
}
}

File diff suppressed because it is too large Load Diff

@ -2,6 +2,9 @@
/* tslint:disable */
/* eslint-disable */
export { ENS__factory } from "./ENS__factory";
export { ENSNameWrapper__factory } from "./ENSNameWrapper__factory";
export { ENSRegistry__factory } from "./ENSRegistry__factory";
export { ENSResolver__factory } from "./ENSResolver__factory";
export { ERC20__factory } from "./ERC20__factory";
export { Multicall__factory } from "./Multicall__factory";
export { OffchainOracle__factory } from "./OffchainOracle__factory";

@ -2,6 +2,9 @@
/* tslint:disable */
/* eslint-disable */
export type { ENS } from "./ENS";
export type { ENSNameWrapper } from "./ENSNameWrapper";
export type { ENSRegistry } from "./ENSRegistry";
export type { ENSResolver } from "./ENSResolver";
export type { ERC20 } from "./ERC20";
export type { Multicall } from "./Multicall";
export type { OffchainOracle } from "./OffchainOracle";
@ -9,6 +12,9 @@ export type { OvmGasPriceOracle } from "./OvmGasPriceOracle";
export type { ReverseRecords } from "./ReverseRecords";
export * as factories from "./factories";
export { ENS__factory } from "./factories/ENS__factory";
export { ENSNameWrapper__factory } from "./factories/ENSNameWrapper__factory";
export { ENSRegistry__factory } from "./factories/ENSRegistry__factory";
export { ENSResolver__factory } from "./factories/ENSResolver__factory";
export { ERC20__factory } from "./factories/ERC20__factory";
export { Multicall__factory } from "./factories/Multicall__factory";
export { OffchainOracle__factory } from "./factories/OffchainOracle__factory";

@ -165,3 +165,7 @@ export function numberFormatter(num: string | number | bigint, digits: number =
.find((item) => Number(num) >= item.value);
return item ? (Number(num) / item.value).toFixed(digits).replace(regexp, '').concat(item.symbol) : '0';
}
export function isHex(value: string) {
return /^0x[0-9a-fA-F]*$/.test(value);
}