dop-stick
Version:
Source control tooling for versionable-upgradeable smart contracts
78 lines • 2.37 kB
TypeScript
import { BigNumber } from 'ethers';
import { DiamondCutActionType } from '../types/diamond';
export interface ParallelValidationResult {
moduleName: string;
passed: boolean;
errors: string[];
warnings: string[];
shouldProceed: boolean;
finalCuts: ParallelFacetCut[];
}
export interface ParallelFacetCut {
moduleName: string;
facetAddress: string;
action: DiamondCutActionType;
functionSelectors: string[];
}
export interface ParallelDeploymentResult {
moduleName: string;
address: string;
deploymentTime: number;
gasUsed: BigNumber;
costInEth: string;
error?: string;
}
export interface ParallelPromptResult {
shouldProceed: boolean;
finalCuts: ParallelFacetCut[];
userResponses: Map<string, boolean>;
}
export interface ParallelModuleGroup {
moduleName: string;
cuts: ParallelFacetCut[];
validationResult?: ParallelValidationResult;
deploymentResult?: ParallelDeploymentResult;
}
export interface ParallelProcessingContext {
startTime: number;
moduleGroups: Map<string, ParallelModuleGroup>;
validationResults: ParallelValidationResult[];
deploymentResults: Map<string, ParallelDeploymentResult>;
errors: string[];
warnings: string[];
}
export interface ParallelDeploymentConfig {
enabled: boolean;
maxConcurrentDeployments?: number;
timeoutPerModule?: number;
returnFundsToMain?: boolean;
minFundingAmount?: string;
}
export interface ParallelizationConfig {
enabled: boolean;
maxThreads: number;
strategy: 'pre-validation' | 'queue-based' | 'batch-prompting';
parallelDeployment?: ParallelDeploymentConfig;
validationConcurrency?: number;
timeoutPerModule?: number;
retryAttempts?: number;
infoProcessing?: {
minBatchSize?: number;
maxBatchSize?: number;
maxConcurrentBatches?: number;
adaptiveBatching?: boolean;
selectorBatchSize?: number;
processingTimeout?: number;
retryDelay?: number;
};
}
export declare const DEFAULT_INFO_PROCESSING_CONFIG: {
readonly minBatchSize: 5;
readonly maxBatchSize: 50;
readonly maxConcurrentBatches: 3;
readonly adaptiveBatching: true;
readonly selectorBatchSize: 20;
readonly processingTimeout: 30000;
readonly retryDelay: 1000;
};
//# sourceMappingURL=parallelTypes.d.ts.map