@matterlabs/hardhat-zksync-verify
Version:
Hardhat plugin to verify smart contracts for the ZKsync network
36 lines • 3.15 kB
TypeScript
import { EthereumProvider, HardhatRuntimeEnvironment } from 'hardhat/types';
import { ChainConfig } from '@nomicfoundation/hardhat-verify/types';
import { ContractInformation } from '../solc/types';
import { ZkSyncEtherscanExplorerVerifyRequest, ZkSyncExplorerVerifyRequest } from './verify-contract-request';
import { VerificationStatusResponse } from './verification-status-response';
export type VerificationServiceVerificationIdReturnType = string | number;
export type VerificationServiceVerifyRequest = ZkSyncExplorerVerifyRequest | ZkSyncEtherscanExplorerVerifyRequest;
export type VerificationServiceInitialVerifyRequest = ZkSyncExplorerVerifyRequest;
export type VerificationServiceVerificationStatus = VerificationStatusResponse;
export interface VerificationServiceVerifyResponse<V extends VerificationServiceVerificationIdReturnType = VerificationServiceVerificationIdReturnType> {
verificationId: V;
contractVerifyDataInfo: ContractVerifyDataInfo;
}
export interface ContractVerifyDataInfo {
contractName: string;
contractAddress: string;
}
export declare abstract class VerificationService<ReturnVerificationIdType extends VerificationServiceVerificationIdReturnType = VerificationServiceVerificationIdReturnType, ContractVerifyRequestType extends VerificationServiceVerifyRequest = VerificationServiceVerifyRequest, VerificationStatusType extends VerificationServiceVerificationStatus = VerificationServiceVerificationStatus, VerificationServiceVerifyResponseType = VerificationServiceVerifyResponse<ReturnVerificationIdType>> {
protected hre: HardhatRuntimeEnvironment;
protected verifyUrl: string;
protected browserUrl?: string | undefined;
constructor(hre: HardhatRuntimeEnvironment, verifyUrl: string, browserUrl?: string | undefined);
protected abstract generateRequest(initialRequest: VerificationServiceInitialVerifyRequest): ContractVerifyRequestType;
protected abstract getVerificationId(initialRequest: VerificationServiceInitialVerifyRequest): Promise<ReturnVerificationIdType>;
abstract getVerificationStatus(verificationId: ReturnVerificationIdType, contractVerifyDataInfo: ContractVerifyDataInfo): Promise<VerificationStatusType>;
protected abstract getSupportedCompilerVersions(): Promise<string[]>;
protected abstract getSolcVersion(contractInformation: ContractInformation): Promise<string>;
protected abstract getContractBorwserUrl(address: string): string | undefined;
static getCurrentChainConfig(ethereumProvider: EthereumProvider, customChains: ChainConfig[], builtinChains: ChainConfig[]): Promise<ChainConfig>;
verify(address: string, contract: string, constructorArguments: any, libraries: any, noCompile: boolean, isWithFullContext?: boolean): Promise<VerificationServiceVerifyResponseType>;
getVerificationStatusWithRetry(verificationId: ReturnVerificationIdType, contractVerifyDataInfo: ContractVerifyDataInfo, maxRetries?: number, baseRetries?: number, baseDelayInMs?: number): Promise<VerificationStatusType>;
}
export interface VerificationServiceVerificationIdResponse {
isOk(): boolean;
}
//# sourceMappingURL=service.d.ts.map