@solarity/hardhat-migrate
Version:
The simplest way to deploy smart contracts
107 lines • 4.52 kB
TypeScript
import { HardhatRuntimeEnvironment } from "hardhat/types";
import { Network, TransactionReceipt, TransactionResponse } from "ethers";
import { ContractFieldsToSave, MigrationMetadata, TransactionFieldsToSave } from "../../types/tools";
export type NetworkInfo = {
network: Network;
explorer: string;
};
export type ReportState = {
title: string;
generalInfo: {
title: string;
migrationFiles: Set<string>;
networks: Record<string, NetworkInfo>;
};
reportedContracts: Set<[name: string, address: string]>;
detailedMigrationFiles: {
migrationName: string;
links: Set<string>;
responses: Set<TransactionResponse>;
receipts: Set<TransactionReceipt>;
}[];
stats: {
totalContracts: number;
totalTransactions: number;
gasUsed: bigint;
averageGasPrice: bigint;
feePayed: bigint;
nativeCurrencySent: bigint;
};
missingLibraries: Set<string>;
recoveredContracts: Set<[name: string, address: string]>;
recoveredTransactions: Set<[name: string, hash: string]>;
verificationStats: {
status: string;
verifiedContracts: Set<[name: string, address: string]>;
failedContracts: Set<[name: string, address: string]>;
failedToSaveContracts: Set<string>;
alreadyVerifiedContracts: Set<[name: string, address: string]>;
proxyLinkingSuccess: Set<[name: string, address: string]>;
proxyLinkingFailure: Set<[name: string, address: string]>;
};
collisions: {
contracts: Set<{
prevMigrationNumber: number;
prevContractAddress: string;
newMigrationNumber: number;
newContractAddress: string;
}>;
transactions: Set<{
prevMigrationNumber: number;
prevMethodName: string;
newMigrationNumber: number;
newMethodName: string;
}>;
unknown: Set<{
prevMigrationNumber: number;
prevContractAddress: string;
prevMethodName: string;
newMigrationNumber: number;
newContractAddress: string;
newMethodName: string;
}>;
};
allContracts: Set<[name: string, address: string]>;
allTransactions: Set<[name: string, hash: string]>;
};
/**
* Class that manages the storage of the reported operation.
*
* Produces reports, metrics and logs in a file format.
*/
export declare class ReporterStorage {
private _hre;
private _currentReportID;
private readonly _state;
private _currentlyDeployingInstance;
private _defaultVerificationState;
constructor(_hre: HardhatRuntimeEnvironment);
storeMigrationBegin(): void;
storeMigrationFileBegin(migrationName: string): void;
storeTransactionResponseHeader(transactionResponse: TransactionResponse, instanceName: string, txLink: string): void;
storeTransactionReceipt(transactionReceipt: TransactionReceipt, value: bigint): void;
storeReportedContracts(contracts: [string, string][]): void;
storeDeploymentOfMissingLibrary(libraryName: string): void;
storeContractRecovery(contractName: string, contractAddress: string): void;
storeTransactionRecovery(methodString: string, savedTx: TransactionFieldsToSave): void;
storeNothingToVerify(): void;
storeVerificationSuccess(contractName: string, contractAddress: string): void;
storeAlreadyVerified(contractName: string, contractAddress: string): void;
storeVerificationFailure(contractName: string, contractAddress: string): void;
storeVerificationSaveFailure(contractName: string): void;
storeTransactionCollision(oldData: TransactionFieldsToSave, dataToSave: TransactionFieldsToSave): void;
storeUnknownCollision(metadata: MigrationMetadata, dataToSave: TransactionFieldsToSave | ContractFieldsToSave): void;
storeContractCollision(oldData: ContractFieldsToSave, dataToSave: ContractFieldsToSave): void;
storeMigrationFiles(migrationFiles: string[]): void;
storeChainInfo(network: NetworkInfo): void;
storeSuccessfulProxyLinking(contractName: string, contractAddress: string): void;
storeFailedProxyLinking(contractName: string, contractAddress: string): void;
completeReport(): void;
private _commitReport;
finishReport(): Promise<void>;
private _getReportID;
private _getReportName;
private _getReportContent;
private _getMarkdownReportContent;
}
//# sourceMappingURL=ReporterStorage.d.ts.map