@@ -49,10 +49,14 @@ function normalizeConfig(config, args={}){
4949 return config ;
5050}
5151
52- function setupHardhatNetwork ( env , api , ui ) {
52+ async function setupHardhatNetwork ( env , api , ui ) {
53+ const hardhatPackage = require ( 'hardhat/package.json' ) ;
5354 const { createProvider } = require ( "hardhat/internal/core/providers/construction" ) ;
5455 const { HARDHAT_NETWORK_NAME } = require ( "hardhat/plugins" )
5556
57+ // after 2.15.0, the internal createProvider function has a different signature
58+ const newCreateProviderSignature = semver . satisfies ( hardhatPackage . version , "^2.15.0" ) ;
59+
5660 let provider , networkName , networkConfig ;
5761 let isHardhatEVM = false ;
5862
@@ -65,12 +69,20 @@ function setupHardhatNetwork(env, api, ui){
6569 networkConfig = env . network . config ;
6670 configureHardhatEVMGas ( networkConfig , api ) ;
6771
68- provider = createProvider (
69- networkName ,
70- networkConfig ,
71- env . config . paths ,
72- env . artifacts ,
73- )
72+ if ( newCreateProviderSignature ) {
73+ provider = await createProvider (
74+ env . config ,
75+ networkName ,
76+ env . artifacts ,
77+ )
78+ } else {
79+ provider = createProvider (
80+ networkName ,
81+ networkConfig ,
82+ env . config . paths ,
83+ env . artifacts ,
84+ )
85+ }
7486
7587 // HttpProvider
7688 } else {
@@ -80,7 +92,12 @@ function setupHardhatNetwork(env, api, ui){
8092 networkConfig = env . config . networks [ networkName ]
8193 configureNetworkGas ( networkConfig , api ) ;
8294 configureHttpProvider ( networkConfig , api , ui )
83- provider = createProvider ( networkName , networkConfig ) ;
95+
96+ if ( newCreateProviderSignature ) {
97+ provider = await createProvider ( env . config , networkName ) ;
98+ } else {
99+ provider = createProvider ( networkName , networkConfig ) ;
100+ }
84101 }
85102
86103 return configureNetworkEnv (
0 commit comments