UNPKG

@matterlabs/hardhat-zksync-verify

Version:
36 lines 3.15 kB
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