@nomicfoundation/hardhat-viem 3.0.0-next.3 → 3.0.0-next.30

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,57 +1,42 @@
1
- # Hardhat Viem plugin
1
+ # hardhat-viem
2
2
 
3
- This plugin integrates [Viem](https://viem.sh) into Hardhat, adding a `viem` object to each network connection.
3
+ This plugin integrates [viem](https://viem.sh) into Hardhat, adding a `viem` object to each network connection.
4
4
 
5
5
  ## Installation
6
6
 
7
+ > This plugin is part of the [Viem Hardhat Toolbox](/v-next/hardhat-toolbox-viem/). If you are using that toolbox, there's nothing else you need to do.
8
+
7
9
  To install this plugin, run the following command:
8
10
 
9
11
  ```bash
10
- npm install --save-dev @nomicfoundation/hardhat-viem@next
12
+ npm install --save-dev @nomicfoundation/hardhat-viem
11
13
  ```
12
14
 
13
- and add the following statements to your `hardhat.config.ts` file:
15
+ In your `hardhat.config.ts` file, import the plugin and add it to the `plugins` array:
14
16
 
15
17
  ```typescript
16
- // ...
17
- import viemPlugin from "@nomicfoundation/hardhat-viem";
18
-
19
- // ...
18
+ import hardhatViem from "@nomicfoundation/hardhat-viem";
20
19
 
21
20
  export default {
22
- // ...
23
- plugins: [
24
- // ...
25
- viemPlugin,
26
- ],
27
-
28
- // ...
21
+ plugins: [hardhatViem],
29
22
  };
30
23
  ```
31
24
 
32
25
  ## Usage
33
26
 
34
- This plugin defines a new `viem` property on every `NetworkConnection` object.
27
+ This plugin adds a `viem` property to each network connection:
35
28
 
36
29
  ```ts
37
- const { viem } = await hre.network.connect();
30
+ import { network } from "hardhat";
38
31
 
39
- // public client
40
- const publicClient = await networkConnection.viem.getPublicClient();
41
- const balance = await publicClient.getBalance({
42
- address: "0x...",
43
- });
32
+ const { viem } = await hre.network.connect();
44
33
 
45
- // wallet client
46
- const [walletClient1] = await networkConnection.viem.getWalletClients();
47
- const hash = await walletClient1.sendTransaction({
48
- to: "0x...",
49
- value: "1000000000000000000",
50
- });
34
+ const publicClient = await viem.getPublicClient();
35
+ console.log(await publicClient.getBlockNumber());
51
36
 
52
- // contracts
53
37
  const counter = await viem.deployContract("Counter");
54
- const x = await counter.read.x();
55
38
  await counter.write.inc();
56
- const xPlus1 = await counter.read.x();
39
+ console.log(await counter.read.x());
57
40
  ```
41
+
42
+ To learn more about using viem with Hardhat, read [our guide](https://hardhat.org/hardhat3-alpha/learn-more/using-viem).
package/dist/src/index.js CHANGED
@@ -2,7 +2,7 @@ import "./type-extensions.js";
2
2
  const hardhatPlugin = {
3
3
  id: "hardhat-viem",
4
4
  hookHandlers: {
5
- network: import.meta.resolve("./internal/hook-handlers/network.js"),
5
+ network: () => import("./internal/hook-handlers/network.js"),
6
6
  },
7
7
  npmPackage: "@nomicfoundation/hardhat-viem",
8
8
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,sBAAsB,CAAC;AAE9B,MAAM,aAAa,GAAkB;IACnC,EAAE,EAAE,cAAc;IAClB,YAAY,EAAE;QACZ,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,qCAAqC,CAAC;KACpE;IACD,UAAU,EAAE,+BAA+B;CAC5C,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,sBAAsB,CAAC;AAE9B,MAAM,aAAa,GAAkB;IACnC,EAAE,EAAE,cAAc;IAClB,YAAY,EAAE;QACZ,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,qCAAqC,CAAC;KAC7D;IACD,UAAU,EAAE,+BAA+B;CAC5C,CAAC;AAEF,eAAe,aAAa,CAAC"}
@@ -2,7 +2,7 @@ import type { TestClientMode } from "../types.js";
2
2
  import type { ChainType } from "hardhat/types/network";
3
3
  import type { EthereumProvider } from "hardhat/types/providers";
4
4
  import type { Chain as ViemChain } from "viem";
5
- export declare function getChain(provider: EthereumProvider, chainType: ChainType | string): Promise<ViemChain>;
5
+ export declare function getChain<ChainTypeT extends ChainType | string>(provider: EthereumProvider, chainType: ChainTypeT): Promise<ViemChain>;
6
6
  export declare function getChainId(provider: EthereumProvider): Promise<number>;
7
7
  export declare function isDevelopmentNetwork(provider: EthereumProvider): Promise<boolean>;
8
8
  export declare function isHardhatNetwork(provider: EthereumProvider): Promise<boolean>;
@@ -1 +1 @@
1
- {"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../../src/internal/chains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAsB/C,wBAAsB,QAAQ,CAC5B,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,SAAS,GAAG,MAAM,GAC5B,OAAO,CAAC,SAAS,CAAC,CAmDpB;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAU5E;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED,wBAAsB,OAAO,CAC3B,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,cAAc,CAAC,CAUzB"}
1
+ {"version":3,"file":"chains.d.ts","sourceRoot":"","sources":["../../../src/internal/chains.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAE,KAAK,IAAI,SAAS,EAAE,MAAM,MAAM,CAAC;AAuB/C,wBAAsB,QAAQ,CAAC,UAAU,SAAS,SAAS,GAAG,MAAM,EAClE,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,UAAU,GACpB,OAAO,CAAC,SAAS,CAAC,CAyCpB;AAED,wBAAsB,UAAU,CAAC,QAAQ,EAAE,gBAAgB,GAAG,OAAO,CAAC,MAAM,CAAC,CAU5E;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,OAAO,CAAC,CAsBlB;AAED,wBAAsB,cAAc,CAClC,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,OAAO,CAAC,CAUlB;AAED,wBAAsB,OAAO,CAC3B,QAAQ,EAAE,gBAAgB,GACzB,OAAO,CAAC,cAAc,CAAC,CAUzB"}
@@ -1,4 +1,5 @@
1
1
  import { assertHardhatInvariant, HardhatError, } from "@nomicfoundation/hardhat-errors";
2
+ import { isObject } from "@nomicfoundation/hardhat-utils/lang";
2
3
  import { extractChain } from "viem";
3
4
  import * as chainsModule from "viem/chains";
4
5
  import { hardhat, anvil, optimism } from "viem/chains";
@@ -7,7 +8,7 @@ import { hardhat, anvil, optimism } from "viem/chains";
7
8
  const chains = Object.values(chainsModule);
8
9
  const chainCache = new WeakMap();
9
10
  const chainIdCache = new WeakMap();
10
- const isHardhatNetworkCache = new WeakMap();
11
+ const hardhatMetadataCache = new WeakMap();
11
12
  const isAnvilNetworkCache = new WeakMap();
12
13
  const HARDHAT_METADATA_METHOD = "hardhat_metadata";
13
14
  const ANVIL_NODE_INFO_METHOD = "anvil_nodeInfo";
@@ -23,21 +24,7 @@ export async function getChain(provider, chainType) {
23
24
  });
24
25
  if ((await isDevelopmentNetwork(provider)) || chain === undefined) {
25
26
  if (await isHardhatNetwork(provider)) {
26
- // TODO: We shoud improve how we handle the chains for the different chain
27
- // types, as this is both a hardhat and an optimism chain.
28
- //
29
- // We are currently creating our chain based off optimism's, but that's
30
- // not always the correct behavior, as the user may be connecting to
31
- // a different chain.
32
- if (chainType === "optimism") {
33
- chain = { ...optimism, id: chainId };
34
- }
35
- else {
36
- chain = {
37
- ...hardhat,
38
- id: chainId,
39
- };
40
- }
27
+ chain = createHardhatChain(provider, chainId, chainType);
41
28
  }
42
29
  else if (await isAnvilNetwork(provider)) {
43
30
  chain = {
@@ -48,7 +35,7 @@ export async function getChain(provider, chainType) {
48
35
  else if (chain === undefined) {
49
36
  // If the chain couldn't be found and we can't detect the development
50
37
  // network we throw an error.
51
- throw new HardhatError(HardhatError.ERRORS.VIEM.NETWORK_NOT_FOUND, {
38
+ throw new HardhatError(HardhatError.ERRORS.HARDHAT_VIEM.GENERAL.NETWORK_NOT_FOUND, {
52
39
  chainId,
53
40
  });
54
41
  }
@@ -78,13 +65,22 @@ export async function isDevelopmentNetwork(provider) {
78
65
  return false;
79
66
  }
80
67
  export async function isHardhatNetwork(provider) {
81
- const cachedIsHardhat = isHardhatNetworkCache.get(provider);
82
- if (cachedIsHardhat !== undefined) {
83
- return cachedIsHardhat;
68
+ const cachedHardhatMetadata = hardhatMetadataCache.get(provider);
69
+ if (cachedHardhatMetadata !== undefined) {
70
+ return true;
71
+ }
72
+ try {
73
+ const hardhatMetadata = await provider.request({
74
+ method: HARDHAT_METADATA_METHOD,
75
+ });
76
+ assertHardhatInvariant(isHardhatMetadata(hardhatMetadata), "Expected valid hardhat metadata response");
77
+ hardhatMetadataCache.set(provider, hardhatMetadata);
78
+ return true;
79
+ }
80
+ catch {
81
+ hardhatMetadataCache.delete(provider);
82
+ return false;
84
83
  }
85
- const isHardhat = await isMethodSupported(provider, HARDHAT_METADATA_METHOD);
86
- isHardhatNetworkCache.set(provider, isHardhat);
87
- return isHardhat;
88
84
  }
89
85
  export async function isAnvilNetwork(provider) {
90
86
  const cachedIsAnvil = isAnvilNetworkCache.get(provider);
@@ -102,7 +98,7 @@ export async function getMode(provider) {
102
98
  if (await isAnvilNetwork(provider)) {
103
99
  return "anvil";
104
100
  }
105
- throw new HardhatError(HardhatError.ERRORS.VIEM.UNSUPPORTED_DEVELOPMENT_NETWORK);
101
+ throw new HardhatError(HardhatError.ERRORS.HARDHAT_VIEM.GENERAL.UNSUPPORTED_DEVELOPMENT_NETWORK);
106
102
  }
107
103
  async function isMethodSupported(provider, method) {
108
104
  try {
@@ -113,4 +109,38 @@ async function isMethodSupported(provider, method) {
113
109
  return false;
114
110
  }
115
111
  }
112
+ function createHardhatChain(provider, chainId, chainType) {
113
+ const hardhatMetadata = hardhatMetadataCache.get(provider);
114
+ assertHardhatInvariant(hardhatMetadata !== undefined, "Expected hardhat metadata to be available");
115
+ if (hardhatMetadata.forkedNetwork?.chainId !== undefined) {
116
+ const forkedChain = extractChain({
117
+ chains,
118
+ id: hardhatMetadata.forkedNetwork.chainId,
119
+ });
120
+ if (forkedChain !== undefined) {
121
+ return {
122
+ ...forkedChain,
123
+ ...hardhat,
124
+ id: chainId,
125
+ };
126
+ }
127
+ }
128
+ const chain = {
129
+ ...hardhat,
130
+ id: chainId,
131
+ };
132
+ if (chainType === "op") {
133
+ // we add the optimism contracts to enable viem's L2 actions
134
+ chain.contracts = {
135
+ ...optimism.contracts,
136
+ };
137
+ }
138
+ return chain;
139
+ }
140
+ function isHardhatMetadata(value) {
141
+ return (isObject(value) &&
142
+ (value.forkedNetwork === undefined ||
143
+ (isObject(value.forkedNetwork) &&
144
+ typeof value.forkedNetwork.chainId === "number")));
145
+ }
116
146
  //# sourceMappingURL=chains.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chains.js","sourceRoot":"","sources":["../../../src/internal/chains.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chains.js","sourceRoot":"","sources":["../../../src/internal/chains.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"clients.d.ts","sourceRoot":"","sources":["../../../src/internal/clients.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,yBAAyB,EACzB,UAAU,EACX,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EACV,OAAO,IAAI,WAAW,EACtB,kBAAkB,IAAI,sBAAsB,EAC5C,gBAAgB,IAAI,oBAAoB,EACxC,kBAAkB,IAAI,sBAAsB,EAC7C,MAAM,MAAM,CAAC;AAcd,wBAAsB,eAAe,CAAC,UAAU,SAAS,SAAS,GAAG,MAAM,EACzE,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,UAAU,EACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GACnD,OAAO,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAqBhD;AAED,wBAAsB,gBAAgB,CAAC,UAAU,SAAS,SAAS,GAAG,MAAM,EAC1E,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,UAAU,EACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GACnD,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAAC,CA2BvD;AAED,wBAAsB,eAAe,CAAC,UAAU,SAAS,SAAS,GAAG,MAAM,EACzE,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,WAAW,EACpB,kBAAkB,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GACnD,OAAO,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAsBhD;AAED,wBAAsB,sBAAsB,CAC1C,UAAU,SAAS,SAAS,GAAG,MAAM,EAErC,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,UAAU,EACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GACnD,OAAO,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAoBhD;AAED,wBAAsB,aAAa,CAAC,UAAU,SAAS,SAAS,GAAG,MAAM,EACvE,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,UAAU,EACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAC/C,OAAO,CAAC,UAAU,CAAC,CAcrB"}
1
+ {"version":3,"file":"clients.d.ts","sourceRoot":"","sources":["../../../src/internal/clients.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,yBAAyB,EACzB,yBAAyB,EACzB,UAAU,EACX,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EACV,OAAO,IAAI,WAAW,EACtB,kBAAkB,IAAI,sBAAsB,EAC5C,gBAAgB,IAAI,oBAAoB,EACxC,kBAAkB,IAAI,sBAAsB,EAC7C,MAAM,MAAM,CAAC;AAcd,wBAAsB,eAAe,CAAC,UAAU,SAAS,SAAS,GAAG,MAAM,EACzE,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,UAAU,EACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GACnD,OAAO,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAoBhD;AAED,wBAAsB,gBAAgB,CAAC,UAAU,SAAS,SAAS,GAAG,MAAM,EAC1E,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,UAAU,EACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GACnD,OAAO,CAAC,KAAK,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAAC,CA0BvD;AAED,wBAAsB,eAAe,CAAC,UAAU,SAAS,SAAS,GAAG,MAAM,EACzE,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,WAAW,EACpB,kBAAkB,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GACnD,OAAO,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAqBhD;AAED,wBAAsB,sBAAsB,CAC1C,UAAU,SAAS,SAAS,GAAG,MAAM,EAErC,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,UAAU,EACrB,kBAAkB,CAAC,EAAE,OAAO,CAAC,sBAAsB,CAAC,GACnD,OAAO,CAAC,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAoBhD;AAED,wBAAsB,aAAa,CAAC,UAAU,SAAS,SAAS,GAAG,MAAM,EACvE,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,UAAU,EACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,GAC/C,OAAO,CAAC,UAAU,CAAC,CAcrB"}
@@ -5,16 +5,14 @@ import { getAccounts } from "./accounts.js";
5
5
  import { getChain, getMode, isDevelopmentNetwork } from "./chains.js";
6
6
  export async function getPublicClient(provider, chainType, publicClientConfig) {
7
7
  const chain = publicClientConfig?.chain ?? (await getChain(provider, chainType));
8
- const parameters = {
9
- ...(await getDefaultClientParameters(provider)),
10
- ...publicClientConfig,
11
- };
8
+ const { defaultClientParams, defaultTransportParams } = await getDefaultParams(provider);
12
9
  let publicClient = createPublicClient({
13
10
  chain,
14
- transport: customTransport(provider),
15
- ...parameters,
11
+ transport: customTransport(provider, defaultTransportParams),
12
+ ...defaultClientParams,
13
+ ...publicClientConfig,
16
14
  });
17
- if (chainType === "optimism") {
15
+ if (chainType === "op") {
18
16
  publicClient = publicClient.extend(publicActionsL2());
19
17
  }
20
18
  /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions --
@@ -24,17 +22,15 @@ export async function getPublicClient(provider, chainType, publicClientConfig) {
24
22
  export async function getWalletClients(provider, chainType, walletClientConfig) {
25
23
  const chain = walletClientConfig?.chain ?? (await getChain(provider, chainType));
26
24
  const accounts = await getAccounts(provider);
27
- const parameters = {
28
- ...(await getDefaultClientParameters(provider)),
29
- ...walletClientConfig,
30
- };
25
+ const { defaultClientParams, defaultTransportParams } = await getDefaultParams(provider);
31
26
  let walletClients = accounts.map((account) => createWalletClient({
32
27
  chain,
33
28
  account,
34
- transport: customTransport(provider),
35
- ...parameters,
29
+ transport: customTransport(provider, defaultTransportParams),
30
+ ...defaultClientParams,
31
+ ...walletClientConfig,
36
32
  }));
37
- if (chainType === "optimism") {
33
+ if (chainType === "op") {
38
34
  walletClients = walletClients.map((walletClient) => walletClient.extend(walletActionsL2()));
39
35
  }
40
36
  /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions --
@@ -43,17 +39,15 @@ export async function getWalletClients(provider, chainType, walletClientConfig)
43
39
  }
44
40
  export async function getWalletClient(provider, chainType, address, walletClientConfig) {
45
41
  const chain = walletClientConfig?.chain ?? (await getChain(provider, chainType));
46
- const parameters = {
47
- ...(await getDefaultClientParameters(provider)),
48
- ...walletClientConfig,
49
- };
42
+ const { defaultClientParams, defaultTransportParams } = await getDefaultParams(provider);
50
43
  let walletClient = createWalletClient({
51
44
  chain,
52
45
  account: address,
53
- transport: customTransport(provider),
54
- ...parameters,
46
+ transport: customTransport(provider, defaultTransportParams),
47
+ ...defaultClientParams,
48
+ ...walletClientConfig,
55
49
  });
56
- if (chainType === "optimism") {
50
+ if (chainType === "op") {
57
51
  walletClient = walletClient.extend(walletActionsL2());
58
52
  }
59
53
  /* eslint-disable-next-line @typescript-eslint/consistent-type-assertions --
@@ -64,7 +58,7 @@ export async function getDefaultWalletClient(provider, chainType, walletClientCo
64
58
  const chain = walletClientConfig?.chain ?? (await getChain(provider, chainType));
65
59
  const [defaultAccount] = await getAccounts(provider);
66
60
  if (defaultAccount === undefined) {
67
- throw new HardhatError(HardhatError.ERRORS.VIEM.DEFAULT_WALLET_CLIENT_NOT_FOUND, {
61
+ throw new HardhatError(HardhatError.ERRORS.HARDHAT_VIEM.GENERAL.DEFAULT_WALLET_CLIENT_NOT_FOUND, {
68
62
  chainId: chain.id,
69
63
  });
70
64
  }
@@ -73,19 +67,24 @@ export async function getDefaultWalletClient(provider, chainType, walletClientCo
73
67
  export async function getTestClient(provider, chainType, testClientConfig) {
74
68
  const chain = testClientConfig?.chain ?? (await getChain(provider, chainType));
75
69
  const mode = await getMode(provider);
76
- const parameters = { ...DEFAULT_CLIENT_PARAMETERS, ...testClientConfig };
77
70
  const testClient = createTestClient({
78
71
  chain,
79
72
  mode,
80
- transport: customTransport(provider),
81
- ...parameters,
73
+ transport: customTransport(provider, DEFAULT_DEVELOPMENT_TRANSPORT_PARAMS),
74
+ ...DEFAULT_DEVELOPMENT_CLIENT_PARAMS,
75
+ ...testClientConfig,
82
76
  });
83
77
  return testClient;
84
78
  }
85
- const DEFAULT_CLIENT_PARAMETERS = { pollingInterval: 50, cacheTime: 0 };
86
- async function getDefaultClientParameters(provider) {
87
- return (await isDevelopmentNetwork(provider))
88
- ? DEFAULT_CLIENT_PARAMETERS
79
+ const DEFAULT_DEVELOPMENT_CLIENT_PARAMS = { pollingInterval: 50, cacheTime: 0 };
80
+ const DEFAULT_DEVELOPMENT_TRANSPORT_PARAMS = { retryCount: 0 };
81
+ async function getDefaultParams(provider) {
82
+ const isDevelopment = await isDevelopmentNetwork(provider);
83
+ return isDevelopment
84
+ ? {
85
+ defaultClientParams: DEFAULT_DEVELOPMENT_CLIENT_PARAMS,
86
+ defaultTransportParams: DEFAULT_DEVELOPMENT_TRANSPORT_PARAMS,
87
+ }
89
88
  : {};
90
89
  }
91
90
  //# sourceMappingURL=clients.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"clients.js","sourceRoot":"","sources":["../../../src/internal/clients.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clients.js","sourceRoot":"","sources":["../../../src/internal/clients.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../src/internal/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EAGxB,+BAA+B,EAEhC,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAkB,OAAO,IAAI,WAAW,EAAE,MAAM,MAAM,CAAC;AAUnE,wBAAsB,cAAc,CAAC,YAAY,SAAS,MAAM,EAC9D,QAAQ,EAAE,gBAAgB,EAC1B,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY,EAC1B,eAAe,GAAE,OAAO,EAAO,EAC/B,oBAAoB,GAAE,oBAAyB,GAC9C,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAwE3C;AAED,wBAAsB,yBAAyB,CAAC,YAAY,SAAS,MAAM,EACzE,QAAQ,EAAE,gBAAgB,EAC1B,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY,EAC1B,eAAe,GAAE,OAAO,EAAO,EAC/B,+BAA+B,GAAE,+BAAoC,GACpE,OAAO,CAAC;IACT,QAAQ,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC3C,qBAAqB,EAAE,wBAAwB,CAAC;CACjD,CAAC,CAoDD;AAED,wBAAsB,aAAa,CAAC,YAAY,SAAS,MAAM,EAC7D,QAAQ,EAAE,gBAAgB,EAC1B,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,WAAW,EACpB,mBAAmB,GAAE,mBAAwB,GAC5C,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAe3C"}
1
+ {"version":3,"file":"contracts.d.ts","sourceRoot":"","sources":["../../../src/internal/contracts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,oBAAoB,EACpB,mBAAmB,EACnB,wBAAwB,EAGxB,+BAA+B,EAEhC,MAAM,aAAa,CAAC;AAErB,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,KAAK,EAAkB,OAAO,IAAI,WAAW,EAAE,MAAM,MAAM,CAAC;AAUnE,wBAAsB,cAAc,CAAC,YAAY,SAAS,MAAM,EAC9D,QAAQ,EAAE,gBAAgB,EAC1B,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY,EAC1B,eAAe,GAAE,OAAO,EAAO,EAC/B,oBAAoB,GAAE,oBAAyB,GAC9C,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAiF3C;AAED,wBAAsB,yBAAyB,CAAC,YAAY,SAAS,MAAM,EACzE,QAAQ,EAAE,gBAAgB,EAC1B,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY,EAC1B,eAAe,GAAE,OAAO,EAAO,EAC/B,+BAA+B,GAAE,+BAAoC,GACpE,OAAO,CAAC;IACT,QAAQ,EAAE,kBAAkB,CAAC,YAAY,CAAC,CAAC;IAC3C,qBAAqB,EAAE,wBAAwB,CAAC;CACjD,CAAC,CAoDD;AAED,wBAAsB,aAAa,CAAC,YAAY,SAAS,MAAM,EAC7D,QAAQ,EAAE,gBAAgB,EAC1B,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,WAAW,EACpB,mBAAmB,GAAE,mBAAwB,GAC5C,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,CAe3C"}
@@ -7,12 +7,12 @@ import { getDefaultWalletClient, getPublicClient } from "./clients.js";
7
7
  export async function deployContract(provider, artifactManager, contractName, constructorArgs = [], deployContractConfig = {}) {
8
8
  const { client, confirmations = 1, libraries = {}, ...deployContractParameters } = deployContractConfig;
9
9
  if (confirmations < 0) {
10
- throw new HardhatError(HardhatError.ERRORS.VIEM.INVALID_CONFIRMATIONS, {
11
- error: "Confirmations must be greather than 0.",
10
+ throw new HardhatError(HardhatError.ERRORS.HARDHAT_VIEM.GENERAL.INVALID_CONFIRMATIONS, {
11
+ error: "Confirmations must be greater than 0.",
12
12
  });
13
13
  }
14
14
  if (confirmations === 0) {
15
- throw new HardhatError(HardhatError.ERRORS.VIEM.INVALID_CONFIRMATIONS, {
15
+ throw new HardhatError(HardhatError.ERRORS.HARDHAT_VIEM.GENERAL.INVALID_CONFIRMATIONS, {
16
16
  error: "deployContract does not support 0 confirmations. Use sendDeploymentTransaction if you want to handle the deployment transaction yourself.",
17
17
  });
18
18
  }
@@ -51,7 +51,7 @@ export async function deployContract(provider, artifactManager, contractName, co
51
51
  const transaction = await publicClient.getTransaction({
52
52
  hash: deploymentTxHash,
53
53
  });
54
- throw new HardhatError(HardhatError.ERRORS.VIEM.DEPLOY_CONTRACT_ERROR, {
54
+ throw new HardhatError(HardhatError.ERRORS.HARDHAT_VIEM.GENERAL.DEPLOY_CONTRACT_ERROR, {
55
55
  txHash: deploymentTxHash,
56
56
  blockNumber: transaction.blockNumber,
57
57
  });
@@ -128,7 +128,7 @@ async function getContractAbiAndBytecode(artifacts, contractName, libraries) {
128
128
  }
129
129
  catch (error) {
130
130
  ensureError(error);
131
- throw new HardhatError(HardhatError.ERRORS.VIEM.LINKING_CONTRACT_ERROR, {
131
+ throw new HardhatError(HardhatError.ERRORS.HARDHAT_VIEM.GENERAL.LINKING_CONTRACT_ERROR, {
132
132
  contractName,
133
133
  error: error.message,
134
134
  }, error);
@@ -1 +1 @@
1
- {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../src/internal/contracts.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../src/internal/contracts.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ export interface HardhatViemHelpers<ChainTypeT extends ChainType | string = Defa
9
9
  * @param publicClientConfig A viem's PublicClientConfig object with the
10
10
  * desired configuration.
11
11
  * @returns The configured public client. If the connection's chainType is
12
- * "optimism", the client will be extended with L2 actions.
12
+ * "op", the client will be extended with L2 actions.
13
13
  */
14
14
  getPublicClient: (publicClientConfig?: Partial<ViemPublicClientConfig>) => Promise<GetPublicClientReturnType<ChainTypeT>>;
15
15
  /**
@@ -19,7 +19,7 @@ export interface HardhatViemHelpers<ChainTypeT extends ChainType | string = Defa
19
19
  * @param walletClientConfig A viem's WalletClientConfig object with the
20
20
  * desired configuration.
21
21
  * @returns An array with the configured wallet clients. If the connection's
22
- * chainType is "optimism", the clients will be extended with L2 actions.
22
+ * chainType is "op", the clients will be extended with L2 actions.
23
23
  */
24
24
  getWalletClients: (walletClientConfig?: Partial<ViemWalletClientConfig>) => Promise<Array<GetWalletClientReturnType<ChainTypeT>>>;
25
25
  /**
@@ -30,7 +30,7 @@ export interface HardhatViemHelpers<ChainTypeT extends ChainType | string = Defa
30
30
  * @param walletClientConfig A viem's WalletClientConfig object with the
31
31
  * desired configuration.
32
32
  * @returns The configured wallet client for the specified address. If the
33
- * connection's chainType is "optimism", the client will be extended with L2
33
+ * connection's chainType is "op", the client will be extended with L2
34
34
  * actions.
35
35
  */
36
36
  getWalletClient: (address: ViemAddress, walletClientConfig?: Partial<ViemWalletClientConfig>) => Promise<GetWalletClientReturnType<ChainTypeT>>;
@@ -84,8 +84,8 @@ export interface HardhatViemHelpers<ChainTypeT extends ChainType | string = Defa
84
84
  */
85
85
  getContractAt: <ContractName extends string>(contractName: ContractName, address: ViemAddress, getContractAtConfig?: GetContractAtConfig) => Promise<ContractReturnType<ContractName>>;
86
86
  }
87
- export type GetPublicClientReturnType<ChainTypeT extends ChainType | string> = ChainTypeT extends "optimism" ? OpPublicClient : PublicClient;
88
- export type GetWalletClientReturnType<ChainTypeT extends ChainType | string> = ChainTypeT extends "optimism" ? OpWalletClient : WalletClient;
87
+ export type GetPublicClientReturnType<ChainTypeT extends ChainType | string> = ChainTypeT extends "op" ? OpPublicClient : PublicClient;
88
+ export type GetWalletClientReturnType<ChainTypeT extends ChainType | string> = ChainTypeT extends "op" ? OpWalletClient : WalletClient;
89
89
  export type PublicClient = ViemPublicClient<ViemTransport, ViemChain>;
90
90
  export type OpPublicClient = ViemClient<ViemTransport, ViemChain, undefined, ViemRpcSchema, ViemPublicActions<ViemTransport, ViemChain, ViemAccount> & ViemOpStackPublicActionsL2<ViemChain, ViemAccount>>;
91
91
  export type WalletClient = ViemWalletClient<ViemTransport, ViemChain, ViemAccount>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nomicfoundation/hardhat-viem",
3
- "version": "3.0.0-next.3",
3
+ "version": "3.0.0-next.30",
4
4
  "description": "Hardhat plugin for viem",
5
5
  "homepage": "https://github.com/nomicfoundation/hardhat/tree/v-next/v-next/hardhat-viem",
6
6
  "repository": {
@@ -31,33 +31,25 @@
31
31
  "README.md"
32
32
  ],
33
33
  "devDependencies": {
34
- "@eslint-community/eslint-plugin-eslint-comments": "^4.3.0",
35
- "@nomicfoundation/hardhat-node-test-reporter": "^3.0.0-next.3",
34
+ "@nomicfoundation/hardhat-node-test-reporter": "^3.0.0-next.30",
36
35
  "@types/node": "^20.14.9",
37
- "@typescript-eslint/eslint-plugin": "^7.7.1",
38
- "@typescript-eslint/parser": "^7.7.1",
39
36
  "c8": "^9.1.0",
40
- "eslint": "8.57.0",
41
- "eslint-config-prettier": "9.1.0",
42
- "eslint-import-resolver-typescript": "^3.6.1",
43
- "eslint-plugin-import": "2.29.1",
44
- "eslint-plugin-no-only-tests": "3.1.0",
45
- "expect-type": "^0.19.0",
37
+ "eslint": "9.25.1",
38
+ "expect-type": "^1.2.1",
46
39
  "prettier": "3.2.5",
47
40
  "rimraf": "^5.0.5",
48
41
  "tsx": "^4.19.3",
49
- "typescript": "~5.5.0",
50
- "typescript-eslint": "7.7.1",
51
- "viem": "^2.21.42",
52
- "@nomicfoundation/hardhat-test-utils": "^3.0.0-next.3"
42
+ "typescript": "~5.8.0",
43
+ "viem": "^2.30.0",
44
+ "@nomicfoundation/hardhat-test-utils": "^3.0.0-next.30"
53
45
  },
54
46
  "dependencies": {
55
- "@nomicfoundation/hardhat-errors": "^3.0.0-next.3",
56
- "@nomicfoundation/hardhat-utils": "^3.0.0-next.3"
47
+ "@nomicfoundation/hardhat-errors": "^3.0.0-next.30",
48
+ "@nomicfoundation/hardhat-utils": "^3.0.0-next.30"
57
49
  },
58
50
  "peerDependencies": {
59
- "hardhat": "^3.0.0-next.3",
60
- "viem": "^2.21.42"
51
+ "hardhat": "^3.0.0-next.30",
52
+ "viem": "^2.30.0"
61
53
  },
62
54
  "scripts": {
63
55
  "lint": "pnpm prettier --check && pnpm eslint",
package/src/index.ts CHANGED
@@ -5,7 +5,7 @@ import "./type-extensions.js";
5
5
  const hardhatPlugin: HardhatPlugin = {
6
6
  id: "hardhat-viem",
7
7
  hookHandlers: {
8
- network: import.meta.resolve("./internal/hook-handlers/network.js"),
8
+ network: () => import("./internal/hook-handlers/network.js"),
9
9
  },
10
10
  npmPackage: "@nomicfoundation/hardhat-viem",
11
11
  };
@@ -7,6 +7,7 @@ import {
7
7
  assertHardhatInvariant,
8
8
  HardhatError,
9
9
  } from "@nomicfoundation/hardhat-errors";
10
+ import { isObject } from "@nomicfoundation/hardhat-utils/lang";
10
11
  import { extractChain } from "viem";
11
12
  import * as chainsModule from "viem/chains";
12
13
  import { hardhat, anvil, optimism } from "viem/chains";
@@ -17,15 +18,15 @@ const chains = Object.values(chainsModule) as ViemChain[];
17
18
 
18
19
  const chainCache = new WeakMap<EthereumProvider, ViemChain>();
19
20
  const chainIdCache = new WeakMap<EthereumProvider, number>();
20
- const isHardhatNetworkCache = new WeakMap<EthereumProvider, boolean>();
21
+ const hardhatMetadataCache = new WeakMap<EthereumProvider, HardhatMetadata>();
21
22
  const isAnvilNetworkCache = new WeakMap<EthereumProvider, boolean>();
22
23
 
23
24
  const HARDHAT_METADATA_METHOD = "hardhat_metadata";
24
25
  const ANVIL_NODE_INFO_METHOD = "anvil_nodeInfo";
25
26
 
26
- export async function getChain(
27
+ export async function getChain<ChainTypeT extends ChainType | string>(
27
28
  provider: EthereumProvider,
28
- chainType: ChainType | string,
29
+ chainType: ChainTypeT,
29
30
  ): Promise<ViemChain> {
30
31
  const cachedChain = chainCache.get(provider);
31
32
  if (cachedChain !== undefined) {
@@ -41,20 +42,7 @@ export async function getChain(
41
42
 
42
43
  if ((await isDevelopmentNetwork(provider)) || chain === undefined) {
43
44
  if (await isHardhatNetwork(provider)) {
44
- // TODO: We shoud improve how we handle the chains for the different chain
45
- // types, as this is both a hardhat and an optimism chain.
46
- //
47
- // We are currently creating our chain based off optimism's, but that's
48
- // not always the correct behavior, as the user may be connecting to
49
- // a different chain.
50
- if (chainType === "optimism") {
51
- chain = { ...optimism, id: chainId };
52
- } else {
53
- chain = {
54
- ...hardhat,
55
- id: chainId,
56
- };
57
- }
45
+ chain = createHardhatChain(provider, chainId, chainType);
58
46
  } else if (await isAnvilNetwork(provider)) {
59
47
  chain = {
60
48
  ...anvil,
@@ -63,9 +51,12 @@ export async function getChain(
63
51
  } else if (chain === undefined) {
64
52
  // If the chain couldn't be found and we can't detect the development
65
53
  // network we throw an error.
66
- throw new HardhatError(HardhatError.ERRORS.VIEM.NETWORK_NOT_FOUND, {
67
- chainId,
68
- });
54
+ throw new HardhatError(
55
+ HardhatError.ERRORS.HARDHAT_VIEM.GENERAL.NETWORK_NOT_FOUND,
56
+ {
57
+ chainId,
58
+ },
59
+ );
69
60
  } else {
70
61
  assertHardhatInvariant(
71
62
  false,
@@ -108,15 +99,27 @@ export async function isDevelopmentNetwork(
108
99
  export async function isHardhatNetwork(
109
100
  provider: EthereumProvider,
110
101
  ): Promise<boolean> {
111
- const cachedIsHardhat = isHardhatNetworkCache.get(provider);
112
- if (cachedIsHardhat !== undefined) {
113
- return cachedIsHardhat;
102
+ const cachedHardhatMetadata = hardhatMetadataCache.get(provider);
103
+ if (cachedHardhatMetadata !== undefined) {
104
+ return true;
114
105
  }
115
106
 
116
- const isHardhat = await isMethodSupported(provider, HARDHAT_METADATA_METHOD);
117
- isHardhatNetworkCache.set(provider, isHardhat);
107
+ try {
108
+ const hardhatMetadata = await provider.request({
109
+ method: HARDHAT_METADATA_METHOD,
110
+ });
111
+
112
+ assertHardhatInvariant(
113
+ isHardhatMetadata(hardhatMetadata),
114
+ "Expected valid hardhat metadata response",
115
+ );
118
116
 
119
- return isHardhat;
117
+ hardhatMetadataCache.set(provider, hardhatMetadata);
118
+ return true;
119
+ } catch {
120
+ hardhatMetadataCache.delete(provider);
121
+ return false;
122
+ }
120
123
  }
121
124
 
122
125
  export async function isAnvilNetwork(
@@ -143,7 +146,7 @@ export async function getMode(
143
146
  return "anvil";
144
147
  }
145
148
  throw new HardhatError(
146
- HardhatError.ERRORS.VIEM.UNSUPPORTED_DEVELOPMENT_NETWORK,
149
+ HardhatError.ERRORS.HARDHAT_VIEM.GENERAL.UNSUPPORTED_DEVELOPMENT_NETWORK,
147
150
  );
148
151
  }
149
152
 
@@ -155,3 +158,59 @@ async function isMethodSupported(provider: EthereumProvider, method: string) {
155
158
  return false;
156
159
  }
157
160
  }
161
+
162
+ function createHardhatChain<ChainTypeT extends ChainType | string>(
163
+ provider: EthereumProvider,
164
+ chainId: number,
165
+ chainType: ChainTypeT,
166
+ ): ViemChain {
167
+ const hardhatMetadata = hardhatMetadataCache.get(provider);
168
+ assertHardhatInvariant(
169
+ hardhatMetadata !== undefined,
170
+ "Expected hardhat metadata to be available",
171
+ );
172
+
173
+ if (hardhatMetadata.forkedNetwork?.chainId !== undefined) {
174
+ const forkedChain = extractChain({
175
+ chains,
176
+ id: hardhatMetadata.forkedNetwork.chainId,
177
+ });
178
+
179
+ if (forkedChain !== undefined) {
180
+ return {
181
+ ...forkedChain,
182
+ ...hardhat,
183
+ id: chainId,
184
+ };
185
+ }
186
+ }
187
+
188
+ const chain: ViemChain = {
189
+ ...hardhat,
190
+ id: chainId,
191
+ };
192
+
193
+ if (chainType === "op") {
194
+ // we add the optimism contracts to enable viem's L2 actions
195
+ chain.contracts = {
196
+ ...optimism.contracts,
197
+ };
198
+ }
199
+
200
+ return chain;
201
+ }
202
+
203
+ interface HardhatMetadata {
204
+ forkedNetwork?: {
205
+ chainId: number;
206
+ };
207
+ }
208
+
209
+ function isHardhatMetadata(value: unknown): value is HardhatMetadata {
210
+ return (
211
+ isObject(value) &&
212
+ (value.forkedNetwork === undefined ||
213
+ (isObject(value.forkedNetwork) &&
214
+ typeof value.forkedNetwork.chainId === "number"))
215
+ );
216
+ }
@@ -31,18 +31,17 @@ export async function getPublicClient<ChainTypeT extends ChainType | string>(
31
31
  ): Promise<GetPublicClientReturnType<ChainTypeT>> {
32
32
  const chain =
33
33
  publicClientConfig?.chain ?? (await getChain(provider, chainType));
34
- const parameters = {
35
- ...(await getDefaultClientParameters(provider)),
36
- ...publicClientConfig,
37
- };
34
+ const { defaultClientParams, defaultTransportParams } =
35
+ await getDefaultParams(provider);
38
36
 
39
37
  let publicClient = createPublicClient({
40
38
  chain,
41
- transport: customTransport(provider),
42
- ...parameters,
39
+ transport: customTransport(provider, defaultTransportParams),
40
+ ...defaultClientParams,
41
+ ...publicClientConfig,
43
42
  });
44
43
 
45
- if (chainType === "optimism") {
44
+ if (chainType === "op") {
46
45
  publicClient = publicClient.extend(publicActionsL2());
47
46
  }
48
47
 
@@ -59,21 +58,20 @@ export async function getWalletClients<ChainTypeT extends ChainType | string>(
59
58
  const chain =
60
59
  walletClientConfig?.chain ?? (await getChain(provider, chainType));
61
60
  const accounts = await getAccounts(provider);
62
- const parameters = {
63
- ...(await getDefaultClientParameters(provider)),
64
- ...walletClientConfig,
65
- };
61
+ const { defaultClientParams, defaultTransportParams } =
62
+ await getDefaultParams(provider);
66
63
 
67
64
  let walletClients = accounts.map((account) =>
68
65
  createWalletClient({
69
66
  chain,
70
67
  account,
71
- transport: customTransport(provider),
72
- ...parameters,
68
+ transport: customTransport(provider, defaultTransportParams),
69
+ ...defaultClientParams,
70
+ ...walletClientConfig,
73
71
  }),
74
72
  );
75
73
 
76
- if (chainType === "optimism") {
74
+ if (chainType === "op") {
77
75
  walletClients = walletClients.map((walletClient) =>
78
76
  walletClient.extend(walletActionsL2()),
79
77
  );
@@ -92,19 +90,18 @@ export async function getWalletClient<ChainTypeT extends ChainType | string>(
92
90
  ): Promise<GetWalletClientReturnType<ChainTypeT>> {
93
91
  const chain =
94
92
  walletClientConfig?.chain ?? (await getChain(provider, chainType));
95
- const parameters = {
96
- ...(await getDefaultClientParameters(provider)),
97
- ...walletClientConfig,
98
- };
93
+ const { defaultClientParams, defaultTransportParams } =
94
+ await getDefaultParams(provider);
99
95
 
100
96
  let walletClient = createWalletClient({
101
97
  chain,
102
98
  account: address,
103
- transport: customTransport(provider),
104
- ...parameters,
99
+ transport: customTransport(provider, defaultTransportParams),
100
+ ...defaultClientParams,
101
+ ...walletClientConfig,
105
102
  });
106
103
 
107
- if (chainType === "optimism") {
104
+ if (chainType === "op") {
108
105
  walletClient = walletClient.extend(walletActionsL2());
109
106
  }
110
107
 
@@ -126,7 +123,7 @@ export async function getDefaultWalletClient<
126
123
 
127
124
  if (defaultAccount === undefined) {
128
125
  throw new HardhatError(
129
- HardhatError.ERRORS.VIEM.DEFAULT_WALLET_CLIENT_NOT_FOUND,
126
+ HardhatError.ERRORS.HARDHAT_VIEM.GENERAL.DEFAULT_WALLET_CLIENT_NOT_FOUND,
130
127
  {
131
128
  chainId: chain.id,
132
129
  },
@@ -149,22 +146,27 @@ export async function getTestClient<ChainTypeT extends ChainType | string>(
149
146
  const chain =
150
147
  testClientConfig?.chain ?? (await getChain(provider, chainType));
151
148
  const mode = await getMode(provider);
152
- const parameters = { ...DEFAULT_CLIENT_PARAMETERS, ...testClientConfig };
153
149
 
154
150
  const testClient = createTestClient({
155
151
  chain,
156
152
  mode,
157
- transport: customTransport(provider),
158
- ...parameters,
153
+ transport: customTransport(provider, DEFAULT_DEVELOPMENT_TRANSPORT_PARAMS),
154
+ ...DEFAULT_DEVELOPMENT_CLIENT_PARAMS,
155
+ ...testClientConfig,
159
156
  });
160
157
 
161
158
  return testClient;
162
159
  }
163
160
 
164
- const DEFAULT_CLIENT_PARAMETERS = { pollingInterval: 50, cacheTime: 0 };
161
+ const DEFAULT_DEVELOPMENT_CLIENT_PARAMS = { pollingInterval: 50, cacheTime: 0 };
162
+ const DEFAULT_DEVELOPMENT_TRANSPORT_PARAMS = { retryCount: 0 };
165
163
 
166
- async function getDefaultClientParameters(provider: EthereumProvider) {
167
- return (await isDevelopmentNetwork(provider))
168
- ? DEFAULT_CLIENT_PARAMETERS
164
+ async function getDefaultParams(provider: EthereumProvider) {
165
+ const isDevelopment = await isDevelopmentNetwork(provider);
166
+ return isDevelopment
167
+ ? {
168
+ defaultClientParams: DEFAULT_DEVELOPMENT_CLIENT_PARAMS,
169
+ defaultTransportParams: DEFAULT_DEVELOPMENT_TRANSPORT_PARAMS,
170
+ }
169
171
  : {};
170
172
  }
@@ -36,15 +36,21 @@ export async function deployContract<ContractName extends string>(
36
36
  } = deployContractConfig;
37
37
 
38
38
  if (confirmations < 0) {
39
- throw new HardhatError(HardhatError.ERRORS.VIEM.INVALID_CONFIRMATIONS, {
40
- error: "Confirmations must be greather than 0.",
41
- });
39
+ throw new HardhatError(
40
+ HardhatError.ERRORS.HARDHAT_VIEM.GENERAL.INVALID_CONFIRMATIONS,
41
+ {
42
+ error: "Confirmations must be greater than 0.",
43
+ },
44
+ );
42
45
  }
43
46
  if (confirmations === 0) {
44
- throw new HardhatError(HardhatError.ERRORS.VIEM.INVALID_CONFIRMATIONS, {
45
- error:
46
- "deployContract does not support 0 confirmations. Use sendDeploymentTransaction if you want to handle the deployment transaction yourself.",
47
- });
47
+ throw new HardhatError(
48
+ HardhatError.ERRORS.HARDHAT_VIEM.GENERAL.INVALID_CONFIRMATIONS,
49
+ {
50
+ error:
51
+ "deployContract does not support 0 confirmations. Use sendDeploymentTransaction if you want to handle the deployment transaction yourself.",
52
+ },
53
+ );
48
54
  }
49
55
 
50
56
  const [publicClient, walletClient, { abi, bytecode }] = await Promise.all([
@@ -84,10 +90,13 @@ export async function deployContract<ContractName extends string>(
84
90
  const transaction = await publicClient.getTransaction({
85
91
  hash: deploymentTxHash,
86
92
  });
87
- throw new HardhatError(HardhatError.ERRORS.VIEM.DEPLOY_CONTRACT_ERROR, {
88
- txHash: deploymentTxHash,
89
- blockNumber: transaction.blockNumber,
90
- });
93
+ throw new HardhatError(
94
+ HardhatError.ERRORS.HARDHAT_VIEM.GENERAL.DEPLOY_CONTRACT_ERROR,
95
+ {
96
+ txHash: deploymentTxHash,
97
+ blockNumber: transaction.blockNumber,
98
+ },
99
+ );
91
100
  }
92
101
 
93
102
  const contract = createContractInstance(
@@ -221,7 +230,7 @@ async function getContractAbiAndBytecode(
221
230
  ensureError(error);
222
231
 
223
232
  throw new HardhatError(
224
- HardhatError.ERRORS.VIEM.LINKING_CONTRACT_ERROR,
233
+ HardhatError.ERRORS.HARDHAT_VIEM.GENERAL.LINKING_CONTRACT_ERROR,
225
234
  {
226
235
  contractName,
227
236
  error: error.message,
package/src/types.ts CHANGED
@@ -35,7 +35,7 @@ export interface HardhatViemHelpers<
35
35
  * @param publicClientConfig A viem's PublicClientConfig object with the
36
36
  * desired configuration.
37
37
  * @returns The configured public client. If the connection's chainType is
38
- * "optimism", the client will be extended with L2 actions.
38
+ * "op", the client will be extended with L2 actions.
39
39
  */
40
40
  getPublicClient: (
41
41
  publicClientConfig?: Partial<ViemPublicClientConfig>,
@@ -47,7 +47,7 @@ export interface HardhatViemHelpers<
47
47
  * @param walletClientConfig A viem's WalletClientConfig object with the
48
48
  * desired configuration.
49
49
  * @returns An array with the configured wallet clients. If the connection's
50
- * chainType is "optimism", the clients will be extended with L2 actions.
50
+ * chainType is "op", the clients will be extended with L2 actions.
51
51
  */
52
52
  getWalletClients: (
53
53
  walletClientConfig?: Partial<ViemWalletClientConfig>,
@@ -60,7 +60,7 @@ export interface HardhatViemHelpers<
60
60
  * @param walletClientConfig A viem's WalletClientConfig object with the
61
61
  * desired configuration.
62
62
  * @returns The configured wallet client for the specified address. If the
63
- * connection's chainType is "optimism", the client will be extended with L2
63
+ * connection's chainType is "op", the client will be extended with L2
64
64
  * actions.
65
65
  */
66
66
  getWalletClient: (
@@ -133,10 +133,10 @@ export interface HardhatViemHelpers<
133
133
  }
134
134
 
135
135
  export type GetPublicClientReturnType<ChainTypeT extends ChainType | string> =
136
- ChainTypeT extends "optimism" ? OpPublicClient : PublicClient;
136
+ ChainTypeT extends "op" ? OpPublicClient : PublicClient;
137
137
 
138
138
  export type GetWalletClientReturnType<ChainTypeT extends ChainType | string> =
139
- ChainTypeT extends "optimism" ? OpWalletClient : WalletClient;
139
+ ChainTypeT extends "op" ? OpWalletClient : WalletClient;
140
140
 
141
141
  export type PublicClient = ViemPublicClient<ViemTransport, ViemChain>;
142
142