import { type Account, type Hash, type Transport } from 'viem'; import type { ChainWithPns, ClientWithAccount } from '../../contracts/consts.js'; import type { Prettify, SimpleTransactionRequest, WriteTransactionParameters } from '../../types.js'; export type RenewNamesDataParameters = { /** Name or names to renew */ nameOrNames: string | string[]; /** Duration to renew name(s) for */ duration: bigint | number; /** Value of all renewals */ value: bigint; }; export type RenewNamesDataReturnType = SimpleTransactionRequest & { value: bigint; }; export type RenewNamesParameters = Prettify>; export type RenewNamesReturnType = Hash; export declare const makeFunctionData: (wallet: ClientWithAccount, { nameOrNames, duration, value }: RenewNamesDataParameters) => RenewNamesDataReturnType; /** * Renews a name or names for a specified duration. * @param wallet - {@link ClientWithAccount} * @param parameters - {@link RenewNamesParameters} * @returns Transaction hash. {@link RenewNamesReturnType} * * @example * import { createPublicClient, createWalletClient, http, custom } from 'viem' * import { mainnet } from 'viem/chains' * import { addPnsContracts } from '@pnsdomains/pnsjs' * import { getPrice } from '@pnsdomains/pnsjs/public' * import { renewNames } from '@pnsdomains/pnsjs/wallet' * * const mainnetWithPns = addPnsContracts(mainnet) * const client = createPublicClient({ * chain: mainnetWithPns, * transport: http(), * }) * const wallet = createWalletClient({ * chain: mainnetWithPns, * transport: custom(window.ethereum), * }) * * const duration = 31536000 // 1 year * const { base, premium } = await getPrice(wallet, { * nameOrNames: 'example.pls', * duration, * }) * const value = (base + premium) * 110n / 100n // add 10% to the price for buffer * const hash = await renewNames(wallet, { * nameOrNames: 'example.pls', * duration, * value, * }) * // 0x... */ declare function renewNames(wallet: ClientWithAccount, { nameOrNames, duration, value, ...txArgs }: RenewNamesParameters): Promise; declare namespace renewNames { var makeFunctionData: (wallet: ClientWithAccount, { nameOrNames, duration, value }: RenewNamesDataParameters) => RenewNamesDataReturnType; } export default renewNames; //# sourceMappingURL=renewNames.d.ts.map