UNPKG

@openzeppelin/hardhat-upgrades

Version:

[![Docs](https://img.shields.io/badge/docs-%F0%9F%93%84-blue)](https://docs.openzeppelin.com/upgrades-plugins/hardhat-upgrades) [![NPM Package](https://img.shields.io/npm/v/@openzeppelin/hardhat-upgrades.svg)](https://www.npmjs.org/package/@openzeppelin/h

92 lines • 3.97 kB
import type { DeployOpts, ProxyKindOption, StandaloneValidationOptions, ValidationOptions } from '@openzeppelin/upgrades-core'; import type { KeyedClient } from '@nomicfoundation/hardhat-viem/types'; import type { Address } from 'viem'; import type { Call, Initializer, StandaloneOptions as EngineStandaloneOptions } from '../engine/options.js'; /** * Options for the transactions sent by the plugin's viem-based API, following * `@nomicfoundation/hardhat-viem` conventions. */ export type TransactionOptions = { /** * The clients to use, as in `@nomicfoundation/hardhat-viem`'s configuration objects. * The wallet client selects the account that signs the transactions sent by the plugin, * which must be an account managed by the network connection, and is the viem counterpart * of the contract factory's signer in the ethers-based API. Defaults to the first wallet * client from `connection.viem.getWalletClients()`. */ client?: KeyedClient; /** * The gas limit for the transactions sent by the plugin. */ gas?: bigint; /** * The gas price for the transactions sent by the plugin (legacy transactions). */ gasPrice?: bigint; /** * The maximum fee per gas for the transactions sent by the plugin. */ maxFeePerGas?: bigint; /** * The maximum priority fee per gas for the transactions sent by the plugin. */ maxPriorityFeePerGas?: bigint; /** * The value to send with the transactions sent by the plugin, e.g. for a payable initializer. * Note that it is applied to every transaction the function sends, including the * implementation deployment if one takes place. */ value?: bigint; }; /** * Addresses for unlinked libraries of a contract, as in `@nomicfoundation/hardhat-viem`'s * `libraries` configuration option. */ export interface Libraries { [libraryName: string]: Address; } /** * Option for providing the addresses of a contract's unlinked libraries. */ export type LibrariesOption = { /** * Addresses for unlinked libraries of the implementation contract, to enable linking. */ libraries?: Libraries; }; /** * Options for functions that can deploy an implementation contract. * * Derived from the ethers-based options, replacing the ethers-typed `txOverrides` with * the viem-style `TransactionOptions`, and excluding the deprecated * `useDeployedImplementation` (use `redeployImplementation` instead). */ export type StandaloneOptions = Omit<EngineStandaloneOptions, 'useDeployedImplementation'> & TransactionOptions & LibrariesOption; /** * Options for functions that can deploy a new version of an implementation contract for upgrading. */ export type UpgradeOptions = ValidationOptions & StandaloneOptions; export type InitialOwner = { initialOwner?: Address; /** * Skips checking the `initialOwner` option when deploying a transparent proxy. */ unsafeSkipProxyAdminCheck?: boolean; }; /** * Options for the admin functions, which send a single transaction with the given wallet client. */ export type AdminOptions = Omit<TransactionOptions, 'client'>; export type DeployBeaconProxyOptions = TransactionOptions & DeployOpts & ProxyKindOption & Initializer; export type DeployBeaconOptions = StandaloneOptions & InitialOwner; export type DeployImplementationOptions = StandaloneOptions; export type DeployProxyOptions = StandaloneOptions & Initializer & InitialOwner; export type ForceImportOptions = ProxyKindOption & LibrariesOption & Pick<TransactionOptions, 'client'>; export type PrepareUpgradeOptions = UpgradeOptions; export type UpgradeBeaconOptions = UpgradeOptions; export type UpgradeProxyOptions = UpgradeOptions & { call?: Call; }; export type ValidateImplementationOptions = StandaloneValidationOptions & LibrariesOption; export type ValidateUpgradeOptions = ValidationOptions & LibrariesOption; //# sourceMappingURL=options.d.ts.map