UNPKG

dop-stick

Version:

Source control tooling for versionable-upgradeable smart contracts

67 lines 3.51 kB
/** * @fileoverview Main upgrade module for handling diamond upgrades * Supports both parallel and sequential upgrade processes */ import { ethers, Signer } from 'ethers'; import { DopStickConfig } from './types/config'; import { UpgradeContext, ExtendedFacetCut, UpgradeModuleResult } from './types/upgrade'; import { IDeploymentTimelineAdapter, IParallelDeploymentTimelineAdapter } from './utils/logsAndMetrics/adapters/types'; declare function getSigner(): Promise<Signer>; export declare function executeUpgradeInBatches(cuts: ExtendedFacetCut[], config: DopStickConfig, context: UpgradeContext): Promise<void>; /** * Main upgrade function that orchestrates the entire upgrade process * @param config - DopStick configuration object containing upgrade settings * @returns Promise<UpgradeContext> - Context object containing upgrade results * @throws {Error} If upgrade process fails at any stage */ export declare function upgrade(config: DopStickConfig): Promise<UpgradeContext>; /** * Deploys a single module as part of the upgrade process * @param moduleName - Name of the module to deploy * @param moduleIndex - Current index in the deployment sequence * @param totalModules - Total number of modules to deploy * @param context - Current upgrade context * @param config - Optional DopStick configuration * @returns Promise<string> - Deployed contract address * @throws {Error} If deployment fails or private key is missing */ declare function deployModule(moduleName: string, moduleIndex: number, totalModules: number, context: UpgradeContext, config?: DopStickConfig): Promise<string>; /** * Executes a diamond upgrade with rollback support * @param finalCuts - Array of facet cuts to be applied * @param config - DopStick configuration object * @param context - Upgrade context for tracking progress and results * @throws {Error} If diamond address is missing or upgrade fails */ declare function executeUpgrade(finalCuts: ExtendedFacetCut[], config: DopStickConfig, context: UpgradeContext): Promise<void>; /** * Processes module groups sequentially * @param cuts - Array of ExtendedFacetCut objects to process * @param config - DopStick configuration * @returns Promise<UpgradeModuleResult[]> Results of module processing */ declare function processModuleGroups(finalCuts: ExtendedFacetCut[], config: DopStickConfig, deploymentLogger: DeploymentLogger): Promise<UpgradeModuleResult[]>; /** * Process module groups in parallel using separate wallets * @param cuts - Array of ExtendedFacetCut objects to process * @param config - DopStick configuration * @returns Promise<UpgradeModuleResult[]> Array of results for each module * @throws {Error} If parallel processing fails */ declare function processModuleGroupsParallel(cuts: ExtendedFacetCut[], config: DopStickConfig, deploymentLogger: IParallelDeploymentTimelineAdapter): Promise<UpgradeModuleResult[]>; /** * Exports for external use */ export { deployModule, executeUpgrade, getSigner, type UpgradeContext, type UpgradeModuleResult, processModuleGroups, processModuleGroupsParallel, upgrade as parallelUpgrade }; /** * Type declarations for module augmentation */ declare module 'hardhat/types/runtime' { interface HardhatRuntimeEnvironment { upgrades: { deployProxy: (Contract: any, args: any[], opts?: any) => Promise<ethers.Contract>; }; } } type DeploymentLogger = IDeploymentTimelineAdapter | IParallelDeploymentTimelineAdapter; //# sourceMappingURL=upgrade.d.ts.map