import { type Address, type BytesToHexErrorType, type Hex, type ToHexErrorType } from 'viem'; import { type PacketToBytesErrorType } from 'viem/ens'; import type { ErrorType } from '../../../errors/utils.js'; import type { Prettify } from '../../../types/index.js'; import { type EncodeContentHashErrorType } from '../../contentHash.js'; import { type GetCoderFromCoinErrorType } from '../../normalizeCoinId.js'; import { type AbiEncodeAs, type EncodeAbiErrorType, type EncodeAbiParameters } from '../../resolver/encodeAbi.js'; /** * V2 `PermissionedResolver` record setters. * * These mirror the v1 `PublicResolver` helpers in `utils/resolver/`, and reuse * their value encoders verbatim — only the *addressing* differs. Every V2 * setter takes the DNS-encoded name (`bytes`), not `bytes32 node`, so a * namehash here hits the fallback and reverts with empty data. `setAddr` is * also renamed `setAddress`; the rest keep their names but still change * selector because of that first argument. * * See contracts-v2 `src/resolver/PermissionedResolver.sol`. */ /** DNS-encode a dotted name, the form every V2 resolver call takes. */ export declare const dnsEncodeName: (name: string) => Hex; export type DnsEncodeNameErrorType = PacketToBytesErrorType | ToHexErrorType; export type SetAddressParametersParameters = { /** Name to set the address record for (DNS-encoded internally) */ name: string; coin: string | number; value: Address | string | null; }; export type SetAddressParametersErrorType = GetCoderFromCoinErrorType | BytesToHexErrorType | ErrorType | DnsEncodeNameErrorType; export declare const setAddressParameters: ({ name, coin, value, }: SetAddressParametersParameters) => { readonly abi: readonly [{ readonly inputs: readonly [{ readonly name: "name"; readonly type: "bytes"; }, { readonly name: "coinType"; readonly type: "uint256"; }, { readonly name: "addressBytes"; readonly type: "bytes"; }]; readonly name: "setAddress"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; readonly functionName: "setAddress"; readonly args: readonly [`0x${string}`, bigint, `0x${string}`]; }; export type SetTextParametersParameters = { /** Name to set the text record for (DNS-encoded internally) */ name: string; key: string; value: string | null; }; export type SetTextParametersErrorType = DnsEncodeNameErrorType; export declare const setTextParameters: ({ name, key, value, }: SetTextParametersParameters) => { readonly abi: readonly [{ readonly inputs: readonly [{ readonly name: "name"; readonly type: "bytes"; }, { readonly name: "key"; readonly type: "string"; }, { readonly name: "value"; readonly type: "string"; }]; readonly name: "setText"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; readonly functionName: "setText"; readonly args: readonly [`0x${string}`, string, string]; }; export type SetContentHashParametersParameters = { /** Name to set the contenthash for (DNS-encoded internally) */ name: string; contentHash: string | null; }; export type SetContentHashParametersErrorType = EncodeContentHashErrorType | DnsEncodeNameErrorType; export declare const setContentHashParameters: ({ name, contentHash, }: SetContentHashParametersParameters) => { readonly abi: readonly [{ readonly inputs: readonly [{ readonly name: "name"; readonly type: "bytes"; }, { readonly name: "hash"; readonly type: "bytes"; }]; readonly name: "setContenthash"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; readonly functionName: "setContenthash"; readonly args: readonly [`0x${string}`, `0x${string}`]; }; export type SetAbiParametersParameters = Prettify<{ /** Name to set the ABI for (DNS-encoded internally) */ name: string; } & EncodeAbiParameters>; export type SetAbiParametersErrorType = EncodeAbiErrorType | DnsEncodeNameErrorType; export declare const setAbiParameters: ({ name, data, encodeAs, }: SetAbiParametersParameters) => Promise<{ readonly abi: readonly [{ readonly inputs: readonly [{ readonly name: "name"; readonly type: "bytes"; }, { readonly name: "contentType"; readonly type: "uint256"; }, { readonly name: "data"; readonly type: "bytes"; }]; readonly name: "setABI"; readonly outputs: readonly []; readonly stateMutability: "nonpayable"; readonly type: "function"; }]; readonly functionName: "setABI"; readonly args: readonly [`0x${string}`, bigint, `0x${string}`]; }>; export type RecordOptions = Prettify<{ /** ContentHash value */ contentHash?: string | null; /** Array of text records */ texts?: Omit[]; /** Array of coin records */ coins?: Omit[]; /** ABI value */ abi?: EncodeAbiParameters | EncodeAbiParameters[]; }>; export type ResolverMulticallItem = ReturnType | Awaited> | ReturnType | ReturnType; export type ResolverMulticallItemErrorType = SetContentHashParametersErrorType | SetAbiParametersErrorType | SetTextParametersErrorType | SetAddressParametersErrorType; /** * Builds the individual setter calls for a V2 resolver. Each call carries the * DNS-encoded name, so the batch needs no separate node argument. */ export declare const resolverMulticallParameters: ({ name, contentHash, texts, coins, abi, }: { name: string; } & RecordOptions) => Promise; //# sourceMappingURL=resolverMulticallParameters.d.ts.map