import type { Account, Address, Chain, Client, NamehashErrorType, Transport, WriteContractErrorType, WriteContractReturnType } from 'viem'; import type { Prettify, WriteTransactionParameters } from '../../../types/index.js'; import { type ClientWithOverridesErrorType } from '../../../utils/clientWithOverrides.js'; import type { AbiEncodeAs } from '../../../utils/resolver/encodeAbi.js'; import { type SetAbiParameters, type SetAbiParametersErrorType } from '../../../utils/resolver/setAbi.js'; export type SetAbiRecordWriteParametersParameters = Prettify & { /** Name to set ABI for */ name: string; /** Resolver address to set ABI on */ resolverAddress: Address; }>; export type SetAbiRecordWriteParametersReturnType = ReturnType; export type SetAbiRecordWriteParametersErrorType = SetAbiParametersErrorType | NamehashErrorType; export declare const setAbiRecordWriteParameters: (client: Client, { name, data, encodeAs, resolverAddress, }: SetAbiRecordWriteParametersParameters) => Promise<{ readonly abi: readonly [{ readonly inputs: readonly [{ readonly name: "node"; readonly type: "bytes32"; }, { 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}`]; readonly address: (({ name: string; } & import("../../../utils/resolver/encodeAbi.js").EncodeAbiParameters extends infer T ? { [key in keyof T]: T[key]; } : never) & { /** Name to set ABI for */ name: string; /** Resolver address to set ABI on */ resolverAddress: Address; })["resolverAddress"]; readonly chain: chain; readonly account: Account; }>; export type SetAbiRecordParameters = SetAbiRecordWriteParametersParameters & WriteTransactionParameters; export type SetAbiRecordReturnType = WriteContractReturnType; export type SetAbiRecordErrorType = SetAbiRecordWriteParametersErrorType | ClientWithOverridesErrorType | WriteContractErrorType; /** * Sets the ABI for a name on a resolver. * @param client - {@link Client} * @param options - {@link SetAbiRecordParameters} * @returns Transaction hash. {@link SetAbiRecordReturnType} * * @example * import { createWalletClient, custom, erc20Abi } from 'viem' * import { mainnet } from 'viem/chains' * import { addEnsContracts } from '@ensdomains/ensjs' * import { setAbiRecord } from '@ensdomains/ensjs/wallet' * * const [account] = await window.ethereum.request({ method: 'eth_requestAccounts' }) * const wallet = createWalletClient({ * account, * chain: addEnsContracts(mainnet), * transport: custom(window.ethereum), * }) * const hash = await setAbiRecord(wallet, { * name: 'ens.eth', * encodeAs: 'json', * data: erc20Abi, * resolverAddress: '0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41', * }) * // 0x... */ export declare function setAbiRecord(client: Client, { name, data, encodeAs, resolverAddress, ...txArgs }: SetAbiRecordParameters): Promise; //# sourceMappingURL=setAbiRecord.d.ts.map