dop-stick
Version:
Source control tooling for versionable-upgradeable smart contracts
74 lines • 3.14 kB
TypeScript
import { DiamondCutActionType } from '../types/diamond';
import { ExtendedFacetCut, ModuleBatchValidationResult } from '../types/upgrade';
import { DopStickConfig, UpgradeConfig } from '../types/config';
import { BatchedModuleFunctions } from '../types/upgrade';
/**
* UpgradeProcessor handles the processing and validation of diamond contract upgrades.
* It manages the upgrade workflow including file loading, validation, and preparation of diamond cuts.
*/
export declare class UpgradeProcessor {
private readonly config;
private batchProcessor;
private readonly mode;
private parallelBatchLogger;
private validationTimeline;
private executionSummary;
private lastValidatedModules;
/**
* Creates a new UpgradeProcessor instance
* @param config - Configuration object containing upgrade settings and modes
*/
constructor(config: DopStickConfig);
/**
* Loads and validates the upgrade configuration file
* @returns Promise resolving to parsed and validated upgrade configuration
* @throws Error if file is not found or has invalid format
*/
loadUpgradeFile(): Promise<UpgradeConfig>;
/**
* Processes upgrades using the batch processing system
* @param upgradeConfig - Configuration containing upgrade specifications
* @returns Object containing processed modules, actions, selectors, and final cuts
* @throws Error if validation fails in strict mode
*/
processUpgrades(upgradeConfig: UpgradeConfig): Promise<{
modules: string[];
actions: DiamondCutActionType[];
selectors: string[][];
finalCuts: ExtendedFacetCut[];
validatedModules: ModuleBatchValidationResult[];
}>;
createBatches(upgradeConfig: UpgradeConfig, isParallel?: boolean): Promise<BatchedModuleFunctions[]>;
/**
* Consolidates multiple batches of the same module into a single batch
* @param batches Original array of batches
* @returns Consolidated array of batches with unique module names
* @private
*/
private consolidateBatches;
private validateBatches;
/**
* Processes upgrades in parallel for improved performance
* @param upgradeConfig - Configuration containing upgrade specifications
* @returns Object containing processed modules and final cuts
* @throws Error if parallel processing fails
*/
processUpgradesParallel(upgradeConfig: UpgradeConfig): Promise<{
modules: string[];
actions: DiamondCutActionType[];
selectors: string[][];
finalCuts: ExtendedFacetCut[];
validatedModules: ModuleBatchValidationResult[];
}>;
/**
* Prepares final diamond cuts from validated modules
* @param validatedModules - Array of validation results for each module
* @returns Object containing individual and grouped cuts
* @private
*/
private prepareFinalCuts;
private handleExecutionSummaryInteraction;
private getValidatedModules;
extractModuleCuts(upgradeConfig: UpgradeConfig): Promise<ExtendedFacetCut[]>;
}
//# sourceMappingURL=upgradeProcessor.d.ts.map