@nomicfoundation/hardhat-viem 2.0.4 → 2.0.6
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/internal/clients.d.ts.map +1 -1
- package/internal/clients.js +22 -18
- package/internal/clients.js.map +1 -1
- package/internal/type-extensions.d.ts +4 -11
- package/internal/type-extensions.d.ts.map +1 -1
- package/internal/type-extensions.js.map +1 -1
- package/package.json +1 -2
- package/src/internal/clients.ts +38 -18
- package/src/internal/type-extensions.ts +5 -32
- package/src/types.ts +19 -0
- package/types.d.ts +9 -0
- package/types.d.ts.map +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"clients.d.ts","sourceRoot":"","sources":["../src/internal/clients.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EACV,OAAO,EACP,KAAK,EACL,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,EACb,MAAM,UAAU,CAAC;
|
1
|
+
{"version":3,"file":"clients.d.ts","sourceRoot":"","sources":["../src/internal/clients.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EACV,OAAO,EACP,KAAK,EACL,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,MAAM,CAAC;AACd,OAAO,KAAK,EACV,YAAY,EACZ,UAAU,EACV,cAAc,EACd,YAAY,EACb,MAAM,UAAU,CAAC;AAsBlB;;;;;;;GAOG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,gBAAgB,EAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAC/C,OAAO,CAAC,YAAY,CAAC,CAIvB;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,gBAAgB,EAC1B,KAAK,EAAE,KAAK,EACZ,kBAAkB,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAC/C,OAAO,CAAC,YAAY,CAAC,CAcvB;AAED;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,gBAAgB,EAC1B,kBAAkB,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAC/C,OAAO,CAAC,YAAY,EAAE,CAAC,CAMzB;AAED,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,gBAAgB,EAC1B,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,OAAO,EAAE,EACnB,kBAAkB,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAC/C,OAAO,CAAC,YAAY,EAAE,CAAC,CAiBzB;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,gBAAgB,EAC1B,OAAO,EAAE,OAAO,EAChB,kBAAkB,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAC/C,OAAO,CAAC,YAAY,CAAC,CAMvB;AAED;;;;;;;GAOG;AACH,wBAAsB,aAAa,CACjC,QAAQ,EAAE,gBAAgB,EAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAC3C,OAAO,CAAC,UAAU,CAAC,CAKrB;AAED,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,gBAAgB,EAC1B,KAAK,EAAE,KAAK,EACZ,IAAI,EAAE,cAAc,EACpB,gBAAgB,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAC3C,OAAO,CAAC,UAAU,CAAC,CAerB"}
|
package/internal/clients.js
CHANGED
@@ -24,6 +24,19 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
24
24
|
};
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
26
26
|
exports.innerGetTestClient = exports.getTestClient = exports.getWalletClient = exports.innerGetWalletClients = exports.getWalletClients = exports.innerGetPublicClient = exports.getPublicClient = void 0;
|
27
|
+
async function getParameters(chain, config) {
|
28
|
+
const { isDevelopmentNetwork } = await Promise.resolve().then(() => __importStar(require("./chains")));
|
29
|
+
const defaultParameters = isDevelopmentNetwork(chain.id)
|
30
|
+
? { pollingInterval: 50, cacheTime: 0 }
|
31
|
+
: {};
|
32
|
+
const transportParameters = isDevelopmentNetwork(chain.id)
|
33
|
+
? { retryCount: 0 }
|
34
|
+
: {};
|
35
|
+
return {
|
36
|
+
clientParameters: { ...defaultParameters, ...config },
|
37
|
+
transportParameters,
|
38
|
+
};
|
39
|
+
}
|
27
40
|
/**
|
28
41
|
* Get a PublicClient instance. This is a read-only client that can be used to
|
29
42
|
* query the blockchain.
|
@@ -40,15 +53,11 @@ async function getPublicClient(provider, publicClientConfig) {
|
|
40
53
|
exports.getPublicClient = getPublicClient;
|
41
54
|
async function innerGetPublicClient(provider, chain, publicClientConfig) {
|
42
55
|
const viem = await Promise.resolve().then(() => __importStar(require("viem")));
|
43
|
-
const {
|
44
|
-
const defaultParameters = isDevelopmentNetwork(chain.id)
|
45
|
-
? { pollingInterval: 50, cacheTime: 0 }
|
46
|
-
: {};
|
47
|
-
const parameters = { ...defaultParameters, ...publicClientConfig };
|
56
|
+
const { clientParameters, transportParameters } = await getParameters(chain, publicClientConfig);
|
48
57
|
const publicClient = viem.createPublicClient({
|
49
58
|
chain,
|
50
|
-
transport: viem.custom(provider),
|
51
|
-
...
|
59
|
+
transport: viem.custom(provider, transportParameters),
|
60
|
+
...clientParameters,
|
52
61
|
});
|
53
62
|
return publicClient;
|
54
63
|
}
|
@@ -72,16 +81,12 @@ async function getWalletClients(provider, walletClientConfig) {
|
|
72
81
|
exports.getWalletClients = getWalletClients;
|
73
82
|
async function innerGetWalletClients(provider, chain, accounts, walletClientConfig) {
|
74
83
|
const viem = await Promise.resolve().then(() => __importStar(require("viem")));
|
75
|
-
const {
|
76
|
-
const defaultParameters = isDevelopmentNetwork(chain.id)
|
77
|
-
? { pollingInterval: 50, cacheTime: 0 }
|
78
|
-
: {};
|
79
|
-
const parameters = { ...defaultParameters, ...walletClientConfig };
|
84
|
+
const { clientParameters, transportParameters } = await getParameters(chain, walletClientConfig);
|
80
85
|
const walletClients = accounts.map((account) => viem.createWalletClient({
|
81
86
|
chain,
|
82
87
|
account,
|
83
|
-
transport: viem.custom(provider),
|
84
|
-
...
|
88
|
+
transport: viem.custom(provider, transportParameters),
|
89
|
+
...clientParameters,
|
85
90
|
}));
|
86
91
|
return walletClients;
|
87
92
|
}
|
@@ -118,13 +123,12 @@ async function getTestClient(provider, testClientConfig) {
|
|
118
123
|
exports.getTestClient = getTestClient;
|
119
124
|
async function innerGetTestClient(provider, chain, mode, testClientConfig) {
|
120
125
|
const viem = await Promise.resolve().then(() => __importStar(require("viem")));
|
121
|
-
const
|
122
|
-
const parameters = { ...defaultParameters, ...testClientConfig };
|
126
|
+
const { clientParameters, transportParameters } = await getParameters(chain, testClientConfig);
|
123
127
|
const testClient = viem.createTestClient({
|
124
128
|
mode,
|
125
129
|
chain,
|
126
|
-
transport: viem.custom(provider),
|
127
|
-
...
|
130
|
+
transport: viem.custom(provider, transportParameters),
|
131
|
+
...clientParameters,
|
128
132
|
});
|
129
133
|
return testClient;
|
130
134
|
}
|
package/internal/clients.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"clients.js","sourceRoot":"","sources":["../src/internal/clients.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAeA
|
1
|
+
{"version":3,"file":"clients.js","sourceRoot":"","sources":["../src/internal/clients.ts"],"names":[],"mappings":"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"}
|
@@ -1,23 +1,16 @@
|
|
1
|
-
import type {
|
2
|
-
import type { PublicClient, TestClient, WalletClient, deployContract, sendDeploymentTransaction, getContractAt } from "../types";
|
1
|
+
import type { HardhatViemHelpers } from "../types";
|
3
2
|
import "hardhat/types/runtime";
|
4
3
|
import "hardhat/types/artifacts";
|
5
4
|
declare module "hardhat/types/runtime" {
|
6
5
|
interface HardhatRuntimeEnvironment {
|
7
|
-
viem:
|
8
|
-
getPublicClient(publicClientConfig?: Partial<PublicClientConfig>): Promise<PublicClient>;
|
9
|
-
getWalletClients(walletClientConfig?: Partial<WalletClientConfig>): Promise<WalletClient[]>;
|
10
|
-
getWalletClient(address: Address, walletClientConfig?: Partial<WalletClientConfig>): Promise<WalletClient>;
|
11
|
-
getTestClient(testClientConfig?: Partial<TestClientConfig>): Promise<TestClient>;
|
12
|
-
deployContract: typeof deployContract;
|
13
|
-
sendDeploymentTransaction: typeof sendDeploymentTransaction;
|
14
|
-
getContractAt: typeof getContractAt;
|
15
|
-
};
|
6
|
+
viem: HardhatViemHelpers;
|
16
7
|
}
|
17
8
|
}
|
18
9
|
declare module "hardhat/types/artifacts" {
|
19
10
|
interface ArtifactsMap {
|
20
11
|
}
|
12
|
+
interface ContractTypesMap {
|
13
|
+
}
|
21
14
|
interface Artifacts {
|
22
15
|
readArtifact<ArgT extends keyof ArtifactsMap>(contractNameOrFullyQualifiedName: ArgT): Promise<ArtifactsMap[ArgT]>;
|
23
16
|
readArtifactSync<ArgT extends keyof ArtifactsMap>(contractNameOrFullyQualifiedName: ArgT): ArtifactsMap[ArgT];
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"type-extensions.d.ts","sourceRoot":"","sources":["../src/internal/type-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
1
|
+
{"version":3,"file":"type-extensions.d.ts","sourceRoot":"","sources":["../src/internal/type-extensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,uBAAuB,CAAC;AAC/B,OAAO,yBAAyB,CAAC;AAEjC,OAAO,QAAQ,uBAAuB,CAAC;IACrC,UAAU,yBAAyB;QACjC,IAAI,EAAE,kBAAkB,CAAC;KAC1B;CACF;AAED,OAAO,QAAQ,yBAAyB,CAAC;IAEvC,UAAU,YAAY;KAAG;IAGzB,UAAU,gBAAgB;KAAG;IAE7B,UAAU,SAAS;QACjB,YAAY,CAAC,IAAI,SAAS,MAAM,YAAY,EAC1C,gCAAgC,EAAE,IAAI,GACrC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;QAE/B,gBAAgB,CAAC,IAAI,SAAS,MAAM,YAAY,EAC9C,gCAAgC,EAAE,IAAI,GACrC,YAAY,CAAC,IAAI,CAAC,CAAC;KACvB;CACF"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"type-extensions.js","sourceRoot":"","sources":["../src/internal/type-extensions.ts"],"names":[],"mappings":";;
|
1
|
+
{"version":3,"file":"type-extensions.js","sourceRoot":"","sources":["../src/internal/type-extensions.ts"],"names":[],"mappings":";;AACA,iCAA+B;AAC/B,mCAAiC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@nomicfoundation/hardhat-viem",
|
3
|
-
"version": "2.0.
|
3
|
+
"version": "2.0.6",
|
4
4
|
"description": "Hardhat plugin for viem",
|
5
5
|
"homepage": "https://github.com/nomicfoundation/hardhat/tree/main/packages/hardhat-viem",
|
6
6
|
"repository": "github:nomicfoundation/hardhat",
|
@@ -57,7 +57,6 @@
|
|
57
57
|
},
|
58
58
|
"peerDependencies": {
|
59
59
|
"hardhat": "^2.17.0",
|
60
|
-
"typescript": "~5.0.0",
|
61
60
|
"viem": "^2.7.6"
|
62
61
|
},
|
63
62
|
"dependencies": {
|
package/src/internal/clients.ts
CHANGED
@@ -13,6 +13,26 @@ import type {
|
|
13
13
|
WalletClient,
|
14
14
|
} from "../types";
|
15
15
|
|
16
|
+
async function getParameters<TConfig extends {} | undefined>(
|
17
|
+
chain: Chain,
|
18
|
+
config: TConfig
|
19
|
+
) {
|
20
|
+
const { isDevelopmentNetwork } = await import("./chains");
|
21
|
+
|
22
|
+
const defaultParameters = isDevelopmentNetwork(chain.id)
|
23
|
+
? { pollingInterval: 50, cacheTime: 0 }
|
24
|
+
: {};
|
25
|
+
|
26
|
+
const transportParameters = isDevelopmentNetwork(chain.id)
|
27
|
+
? { retryCount: 0 }
|
28
|
+
: {};
|
29
|
+
|
30
|
+
return {
|
31
|
+
clientParameters: { ...defaultParameters, ...config },
|
32
|
+
transportParameters,
|
33
|
+
};
|
34
|
+
}
|
35
|
+
|
16
36
|
/**
|
17
37
|
* Get a PublicClient instance. This is a read-only client that can be used to
|
18
38
|
* query the blockchain.
|
@@ -36,16 +56,15 @@ export async function innerGetPublicClient(
|
|
36
56
|
publicClientConfig?: Partial<PublicClientConfig>
|
37
57
|
): Promise<PublicClient> {
|
38
58
|
const viem = await import("viem");
|
39
|
-
const {
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
const parameters = { ...defaultParameters, ...publicClientConfig };
|
59
|
+
const { clientParameters, transportParameters } = await getParameters(
|
60
|
+
chain,
|
61
|
+
publicClientConfig
|
62
|
+
);
|
44
63
|
|
45
64
|
const publicClient = viem.createPublicClient({
|
46
65
|
chain,
|
47
|
-
transport: viem.custom(provider),
|
48
|
-
...
|
66
|
+
transport: viem.custom(provider, transportParameters),
|
67
|
+
...clientParameters,
|
49
68
|
});
|
50
69
|
|
51
70
|
return publicClient;
|
@@ -78,18 +97,17 @@ export async function innerGetWalletClients(
|
|
78
97
|
walletClientConfig?: Partial<WalletClientConfig>
|
79
98
|
): Promise<WalletClient[]> {
|
80
99
|
const viem = await import("viem");
|
81
|
-
const {
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
const parameters = { ...defaultParameters, ...walletClientConfig };
|
100
|
+
const { clientParameters, transportParameters } = await getParameters(
|
101
|
+
chain,
|
102
|
+
walletClientConfig
|
103
|
+
);
|
86
104
|
|
87
105
|
const walletClients = accounts.map((account) =>
|
88
106
|
viem.createWalletClient({
|
89
107
|
chain,
|
90
108
|
account,
|
91
|
-
transport: viem.custom(provider),
|
92
|
-
...
|
109
|
+
transport: viem.custom(provider, transportParameters),
|
110
|
+
...clientParameters,
|
93
111
|
})
|
94
112
|
);
|
95
113
|
|
@@ -142,14 +160,16 @@ export async function innerGetTestClient(
|
|
142
160
|
testClientConfig?: Partial<TestClientConfig>
|
143
161
|
): Promise<TestClient> {
|
144
162
|
const viem = await import("viem");
|
145
|
-
const
|
146
|
-
|
163
|
+
const { clientParameters, transportParameters } = await getParameters(
|
164
|
+
chain,
|
165
|
+
testClientConfig
|
166
|
+
);
|
147
167
|
|
148
168
|
const testClient = viem.createTestClient({
|
149
169
|
mode,
|
150
170
|
chain,
|
151
|
-
transport: viem.custom(provider),
|
152
|
-
...
|
171
|
+
transport: viem.custom(provider, transportParameters),
|
172
|
+
...clientParameters,
|
153
173
|
});
|
154
174
|
|
155
175
|
return testClient;
|
@@ -1,40 +1,10 @@
|
|
1
|
-
import type {
|
2
|
-
Address,
|
3
|
-
PublicClientConfig,
|
4
|
-
WalletClientConfig,
|
5
|
-
TestClientConfig,
|
6
|
-
} from "viem";
|
7
|
-
import type {
|
8
|
-
PublicClient,
|
9
|
-
TestClient,
|
10
|
-
WalletClient,
|
11
|
-
deployContract,
|
12
|
-
sendDeploymentTransaction,
|
13
|
-
getContractAt,
|
14
|
-
} from "../types";
|
1
|
+
import type { HardhatViemHelpers } from "../types";
|
15
2
|
import "hardhat/types/runtime";
|
16
3
|
import "hardhat/types/artifacts";
|
17
4
|
|
18
5
|
declare module "hardhat/types/runtime" {
|
19
6
|
interface HardhatRuntimeEnvironment {
|
20
|
-
viem:
|
21
|
-
getPublicClient(
|
22
|
-
publicClientConfig?: Partial<PublicClientConfig>
|
23
|
-
): Promise<PublicClient>;
|
24
|
-
getWalletClients(
|
25
|
-
walletClientConfig?: Partial<WalletClientConfig>
|
26
|
-
): Promise<WalletClient[]>;
|
27
|
-
getWalletClient(
|
28
|
-
address: Address,
|
29
|
-
walletClientConfig?: Partial<WalletClientConfig>
|
30
|
-
): Promise<WalletClient>;
|
31
|
-
getTestClient(
|
32
|
-
testClientConfig?: Partial<TestClientConfig>
|
33
|
-
): Promise<TestClient>;
|
34
|
-
deployContract: typeof deployContract;
|
35
|
-
sendDeploymentTransaction: typeof sendDeploymentTransaction;
|
36
|
-
getContractAt: typeof getContractAt;
|
37
|
-
};
|
7
|
+
viem: HardhatViemHelpers;
|
38
8
|
}
|
39
9
|
}
|
40
10
|
|
@@ -42,6 +12,9 @@ declare module "hardhat/types/artifacts" {
|
|
42
12
|
// eslint-disable-next-line @typescript-eslint/no-empty-interface
|
43
13
|
interface ArtifactsMap {}
|
44
14
|
|
15
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-interface
|
16
|
+
interface ContractTypesMap {}
|
17
|
+
|
45
18
|
interface Artifacts {
|
46
19
|
readArtifact<ArgT extends keyof ArtifactsMap>(
|
47
20
|
contractNameOrFullyQualifiedName: ArgT
|
package/src/types.ts
CHANGED
@@ -83,4 +83,23 @@ export declare function getContractAt<CN extends string>(
|
|
83
83
|
config?: GetContractAtConfig
|
84
84
|
): Promise<GetContractReturnType>;
|
85
85
|
|
86
|
+
export interface HardhatViemHelpers {
|
87
|
+
getPublicClient(
|
88
|
+
publicClientConfig?: Partial<viemT.PublicClientConfig>
|
89
|
+
): Promise<PublicClient>;
|
90
|
+
getWalletClients(
|
91
|
+
walletClientConfig?: Partial<viemT.WalletClientConfig>
|
92
|
+
): Promise<WalletClient[]>;
|
93
|
+
getWalletClient(
|
94
|
+
address: viemT.Address,
|
95
|
+
walletClientConfig?: Partial<viemT.WalletClientConfig>
|
96
|
+
): Promise<WalletClient>;
|
97
|
+
getTestClient(
|
98
|
+
testClientConfig?: Partial<viemT.TestClientConfig>
|
99
|
+
): Promise<TestClient>;
|
100
|
+
deployContract: typeof deployContract;
|
101
|
+
sendDeploymentTransaction: typeof sendDeploymentTransaction;
|
102
|
+
getContractAt: typeof getContractAt;
|
103
|
+
}
|
104
|
+
|
86
105
|
export type { AbiParameterToPrimitiveType } from "abitype";
|
package/types.d.ts
CHANGED
@@ -39,5 +39,14 @@ export declare function sendDeploymentTransaction<CN extends string>(contractNam
|
|
39
39
|
deploymentTransaction: GetTransactionReturnType;
|
40
40
|
}>;
|
41
41
|
export declare function getContractAt<CN extends string>(contractName: ContractName<CN>, address: viemT.Address, config?: GetContractAtConfig): Promise<GetContractReturnType>;
|
42
|
+
export interface HardhatViemHelpers {
|
43
|
+
getPublicClient(publicClientConfig?: Partial<viemT.PublicClientConfig>): Promise<PublicClient>;
|
44
|
+
getWalletClients(walletClientConfig?: Partial<viemT.WalletClientConfig>): Promise<WalletClient[]>;
|
45
|
+
getWalletClient(address: viemT.Address, walletClientConfig?: Partial<viemT.WalletClientConfig>): Promise<WalletClient>;
|
46
|
+
getTestClient(testClientConfig?: Partial<viemT.TestClientConfig>): Promise<TestClient>;
|
47
|
+
deployContract: typeof deployContract;
|
48
|
+
sendDeploymentTransaction: typeof sendDeploymentTransaction;
|
49
|
+
getContractAt: typeof getContractAt;
|
50
|
+
}
|
42
51
|
export type { AbiParameterToPrimitiveType } from "abitype";
|
43
52
|
//# sourceMappingURL=types.d.ts.map
|
package/types.d.ts.map
CHANGED
@@ -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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"}
|