@openzeppelin/hardhat-upgrades
Version:
[](https://docs.openzeppelin.com/upgrades-plugins/hardhat-upgrades) [](https://www.npmjs.org/package/@openzeppelin/h
32 lines • 1.98 kB
TypeScript
import { StorageLayout, ValidationDataCurrent, ValidationOptions, Version } from '@openzeppelin/upgrades-core';
import type { EthereumProvider } from 'hardhat/types/providers';
import type { ContractInfo, DeployedContract, EngineBinding } from './binding.js';
import { StandaloneOptions, UpgradeOptions } from './options.js';
export interface DeployedImpl {
impl: string;
/** The implementation deployment record, used by the bindings to expose a transaction response. */
deployment: DeployedContract;
}
export interface DeployedProxyImpl extends DeployedImpl {
kind: NonNullable<ValidationOptions['kind']>;
}
export interface DeployData {
provider: EthereumProvider;
validations: ValidationDataCurrent;
unlinkedBytecode: string;
encodedArgs: string;
version: Version;
layout: StorageLayout;
fullOpts: Required<UpgradeOptions>;
}
export declare function getDeployData(binding: EngineBinding, info: ContractInfo, opts: UpgradeOptions): Promise<DeployData>;
export declare function deployUpgradeableImpl(binding: EngineBinding, info: ContractInfo, opts: StandaloneOptions, currentImplAddress: string | undefined): Promise<DeployedImpl>;
export declare function deployProxyImpl(binding: EngineBinding, info: ContractInfo, opts: UpgradeOptions, proxyAddress: string | undefined): Promise<DeployedProxyImpl>;
export declare function deployBeaconImpl(binding: EngineBinding, info: ContractInfo, opts: UpgradeOptions, beaconAddress: string | undefined): Promise<DeployedImpl>;
/**
* To import an already deployed contract we reuse fetchOrDeploy for its ability to validate a
* deployment and record it in the network file, by "simulating" a deployment: the deploy callback
* simply returns the contract to be imported rather than deploying anything.
*/
export declare function simulateDeployImpl(binding: EngineBinding, info: ContractInfo, opts: UpgradeOptions, implAddress: string): Promise<void>;
//# sourceMappingURL=deploy-impl.d.ts.map