import type { Account, Address, Chain, Client, Hash, Transport, WriteContractErrorType } from 'viem'; import type { Prettify, WriteTransactionParameters } from '../../../../types/index.js'; import { type ClientWithOverridesErrorType } from '../../../../utils/clientWithOverrides.js'; /** The record id that unlinks a name; an unlinked name reads the default record. */ export declare const UNLINKED_RECORD_ID = 0n; export type LinkToRecordWriteParametersParameters = { /** The name to re-point */ sourceName: string; /** * The record id to use, at most `getRecordCount()`. Defaults to * {@link UNLINKED_RECORD_ID}, which unlinks the name. */ recordId?: bigint; /** The resolver address */ resolverAddress: Address; }; export type LinkToRecordWriteParametersReturnType = ReturnType; export declare const linkToRecordWriteParameters: (client: Client, { sourceName, recordId, resolverAddress, }: LinkToRecordWriteParametersParameters) => { 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: "linkToRecord"; readonly type: "function"; readonly stateMutability: "nonpayable"; readonly inputs: readonly [{ readonly name: "sourceName"; readonly type: "bytes"; }, { readonly name: "recordId"; readonly type: "uint256"; }]; readonly outputs: readonly []; }]; readonly functionName: "linkToRecord"; readonly args: readonly [`0x${string}`, bigint]; readonly chain: chain; readonly account: Account; }; export type LinkToRecordParameters = Prettify>; export type LinkToRecordReturnType = Hash; export type LinkToRecordErrorType = ClientWithOverridesErrorType | WriteContractErrorType; /** * Links a name to a record by id on a PermissionedResolver (V2), or unlinks it * when `recordId` is omitted or `0`. An unlinked name reads the resolver's * default record; the previous record stays on the resolver and can be linked * back later. This replaces `clearRecords`. * * Requires `ROLE_LINK` on the resolver's root resource. * * @param client - {@link Client} * @param parameters - {@link LinkToRecordParameters} * @returns Transaction hash. {@link LinkToRecordReturnType} * * @example * import { createWalletClient, custom } from 'viem' * import { mainnet } from 'viem/chains' * import { linkToRecord } from '@ensdomains/ensjs/wallet/v2' * * const [account] = await window.ethereum.request({ method: 'eth_requestAccounts' }) * const wallet = createWalletClient({ * account, * chain: mainnet, * transport: custom(window.ethereum), * }) * // Unlink: the name falls back to the default record * const hash = await linkToRecord(wallet, { * sourceName: 'alias.eth', * resolverAddress: '0x...', * }) * // 0x... */ export declare function linkToRecord(client: Client, { sourceName, recordId, resolverAddress, ...txArgs }: LinkToRecordParameters): Promise; //# sourceMappingURL=linkToRecord.d.ts.map