import type { Account, Address, Chain, Client, Hash, Transport, WriteContractErrorType } from 'viem'; import { type NamehashErrorType } from 'viem'; import type { Prettify, WriteTransactionParameters } from '../../../../types/index.js'; import { type ClientWithOverridesErrorType } from '../../../../utils/clientWithOverrides.js'; export type LinkToNodeWriteParametersParameters = { /** The name that should start serving the target's records */ sourceName: string; /** The name whose current record the source should use */ targetName: string; /** The resolver address */ resolverAddress: Address; }; export type LinkToNodeWriteParametersReturnType = ReturnType; export declare const linkToNodeWriteParameters: (client: Client, { sourceName, targetName, resolverAddress, }: LinkToNodeWriteParametersParameters) => { readonly address: `0x${string}`; readonly abi: readonly [{ readonly type: "error"; readonly name: "InvalidRecord"; readonly inputs: readonly []; }, { readonly type: "error"; readonly name: "UnsupportedResolverProfile"; readonly inputs: readonly [{ readonly name: "selector"; readonly type: "bytes4"; }]; }, { readonly type: "error"; readonly name: "InvalidEVMAddress"; readonly inputs: readonly [{ readonly name: "addressBytes"; readonly type: "bytes"; }]; }, { readonly type: "error"; readonly name: "InvalidContentType"; readonly inputs: readonly [{ readonly name: "contentType"; readonly type: "uint256"; }]; }, { readonly name: "linkToNode"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "sourceName"; readonly type: "bytes"; }, { readonly name: "targetNode"; readonly type: "bytes32"; }]; readonly outputs: readonly []; }]; readonly functionName: "linkToNode"; readonly args: readonly [`0x${string}`, `0x${string}`]; readonly chain: chain; readonly account: Account; }; export type LinkToNodeParameters = Prettify>; export type LinkToNodeReturnType = Hash; export type LinkToNodeErrorType = ClientWithOverridesErrorType | WriteContractErrorType | NamehashErrorType; /** * Links a name to the record another name currently uses on a * PermissionedResolver (V2), so both names serve the same records. * * Requires `ROLE_LINK` on the resolver's root resource. Reverts with * `InvalidRecord` if the target name has no record on this resolver yet. * * @param client - {@link Client} * @param parameters - {@link LinkToNodeParameters} * @returns Transaction hash. {@link LinkToNodeReturnType} * * @example * import { createWalletClient, custom } from 'viem' * import { mainnet } from 'viem/chains' * import { linkToNode } from '@ensdomains/ensjs/wallet/v2' * * const [account] = await window.ethereum.request({ method: 'eth_requestAccounts' }) * const wallet = createWalletClient({ * account, * chain: mainnet, * transport: custom(window.ethereum), * }) * const hash = await linkToNode(wallet, { * sourceName: 'alias.eth', * targetName: 'target.eth', * resolverAddress: '0x...', * }) * // 0x... */ export declare function linkToNode(client: Client, { sourceName, targetName, resolverAddress, ...txArgs }: LinkToNodeParameters): Promise; //# sourceMappingURL=linkToNode.d.ts.map