dop-stick
Version:
Source control tooling for versionable-upgradeable smart contracts
33 lines • 1.52 kB
TypeScript
import { Signer, Contract, BigNumber } from 'ethers';
import { DopStickConfig } from '../types/config';
import { DiamondCutActionType, FacetCut } from '../types/diamond';
import { ExtendedFacetCut } from '../types/upgrade';
export interface CollisionDetail {
selector: string;
signature: string;
existingFacet?: string;
}
export interface CollisionCheckResult {
hasCollisions: boolean;
collisions: CollisionDetail[];
}
export declare class DiamondHelper {
private static instance;
private static readonly DEFAULT_LOUPE_FUNCTIONS;
private static readonly DEFAULT_CUT_FUNCTION;
private static readonly DEFAULT_OWNER_FUNCTION;
private static readonly GAS_BUFFER_PERCENTAGE;
private constructor();
static getInstance(): DiamondHelper;
private getLoupeFunctions;
private getFunctionName;
checkSelectorCollisions(selectors: string[], action: DiamondCutActionType, config: DopStickConfig): Promise<CollisionCheckResult>;
validateDiamondOwnership(signer: Signer, config?: DopStickConfig): Promise<boolean>;
estimateUpgradeGas(cuts: FacetCut[], config: DopStickConfig): Promise<BigNumber>;
private getFunctionSignature;
validateFacetAddresses(addresses: string[], config?: DopStickConfig): Promise<boolean>;
getUpgradeService(signer: Signer, config: DopStickConfig): Promise<Contract>;
formatCutsForDiamond(cuts: ExtendedFacetCut[]): FacetCut[];
}
export declare const diamondHelper: DiamondHelper;
//# sourceMappingURL=diamondHelpers.d.ts.map