@nomicfoundation/hardhat-viem
Version:
Hardhat plugin for viem
52 lines • 2.86 kB
TypeScript
import type * as viemT from "viem";
import type { ArtifactsMap } from "hardhat/types/artifacts";
import type { Libraries } from "./internal/bytecode";
export type PublicClient = viemT.PublicClient<viemT.Transport, viemT.Chain>;
export type WalletClient = viemT.WalletClient<viemT.Transport, viemT.Chain, viemT.Account>;
export type TestClient = viemT.TestClient<TestClientMode, viemT.Transport, viemT.Chain>;
export type KeyedClient = {
public?: PublicClient;
wallet: WalletClient;
} | {
public: PublicClient;
wallet?: WalletClient;
};
export type TestClientMode = Parameters<typeof viemT.createTestClient>[0]["mode"];
export interface SendTransactionConfig {
client?: KeyedClient;
gas?: bigint;
gasPrice?: bigint;
maxFeePerGas?: bigint;
maxPriorityFeePerGas?: bigint;
value?: bigint;
}
export interface DeployContractConfig extends SendTransactionConfig {
confirmations?: number;
libraries?: Libraries<viemT.Address>;
}
export interface SendDeploymentTransactionConfig extends SendTransactionConfig {
libraries?: Libraries<viemT.Address>;
}
export interface GetContractAtConfig {
client?: KeyedClient;
}
export type GetContractReturnType<TAbi extends viemT.Abi | readonly unknown[] = viemT.Abi> = viemT.GetContractReturnType<TAbi, Required<KeyedClient>, viemT.Address>;
export type GetTransactionReturnType = viemT.GetTransactionReturnType<viemT.Chain, "latest">;
export type ContractName<StringT extends string> = StringT extends keyof ArtifactsMap ? never : StringT;
export declare function deployContract<CN extends string>(contractName: ContractName<CN>, constructorArgs?: any[], config?: DeployContractConfig): Promise<GetContractReturnType>;
export declare function sendDeploymentTransaction<CN extends string>(contractName: ContractName<CN>, constructorArgs?: any[], config?: SendDeploymentTransactionConfig): Promise<{
contract: GetContractReturnType;
deploymentTransaction: GetTransactionReturnType;
}>;
export declare function getContractAt<CN extends string>(contractName: ContractName<CN>, address: viemT.Address, config?: GetContractAtConfig): Promise<GetContractReturnType>;
export interface HardhatViemHelpers {
getPublicClient(publicClientConfig?: Partial<viemT.PublicClientConfig>): Promise<PublicClient>;
getWalletClients(walletClientConfig?: Partial<viemT.WalletClientConfig>): Promise<WalletClient[]>;
getWalletClient(address: viemT.Address, walletClientConfig?: Partial<viemT.WalletClientConfig>): Promise<WalletClient>;
getTestClient(testClientConfig?: Partial<viemT.TestClientConfig>): Promise<TestClient>;
deployContract: typeof deployContract;
sendDeploymentTransaction: typeof sendDeploymentTransaction;
getContractAt: typeof getContractAt;
}
export type { AbiParameterToPrimitiveType } from "abitype";
//# sourceMappingURL=types.d.ts.map