import { type Account, type Address, type Hash, type Transport } from 'viem'; import type { ChainWithPns, ClientWithAccount } from '../../contracts/consts.js'; import type { Pls2ldNameSpecifier, GetNameType, Prettify, SimpleTransactionRequest, WriteTransactionParameters } from '../../types.js'; import { type EncodeChildFusesInputObject } from '../../utils/fuses.js'; export type WrapNameDataParameters = GetNameType> = { /** The name to wrap */ name: TName; /** The recipient of the wrapped name */ newOwnerAddress: Address; /** Fuses to set on wrap (pls-2ld only) */ fuses?: TNameOption extends Pls2ldNameSpecifier ? EncodeChildFusesInputObject : never; /** The resolver address to set on wrap */ resolverAddress?: Address; }; export type WrapNameDataReturnType = SimpleTransactionRequest; export type WrapNameParameters = Prettify & WriteTransactionParameters>; export type WrapNameReturnType = Hash; export declare const makeFunctionData: (wallet: ClientWithAccount, { name, newOwnerAddress, fuses, resolverAddress, }: WrapNameDataParameters>) => WrapNameDataReturnType; /** * Wraps a name. * @param wallet - {@link ClientWithAccount} * @param parameters - {@link WrapNameParameters} * @returns Transaction hash. {@link WrapNameReturnType} * * @example * import { createWalletClient, custom } from 'viem' * import { mainnet } from 'viem/chains' * import { addPnsContracts } from '@pnsdomains/pnsjs' * import { wrapName } from '@pnsdomains/pnsjs/wallet' * * const wallet = createWalletClient({ * chain: addPnsContracts(mainnet), * transport: custom(window.ethereum), * }) * const hash = await wrapName(wallet, { * name: 'pns.pls', * newOwnerAddress: '0xFe89cc7aBB2C4183683ab71653C4cdc9B02D44b7', * }) * // 0x... */ declare function wrapName(wallet: ClientWithAccount, { name, newOwnerAddress, fuses, resolverAddress, ...txArgs }: WrapNameParameters): Promise; declare namespace wrapName { var makeFunctionData: (wallet: ClientWithAccount, { name, newOwnerAddress, fuses, resolverAddress, }: WrapNameDataParameters>) => SimpleTransactionRequest; } export default wrapName; //# sourceMappingURL=wrapName.d.ts.map