Hardhat

HardhatConfig.networks.mainnet_fork.url 的無效值未定義 - 應為字元串類型的值

  • December 8, 2021

我有一個ALCHEMY_MAINNET_RPC_URL字元串類型的環境。我可以通過以下方式驗證它:

const ALCHEMY_MAINNET_RPC_URL = process.env.ALCHEMY_MAINNET_RPC_URL || ''
console.log(typeof (ALCHEMY_MAINNET_RPC_URL))

我得到了輸出string

在我的配置中,我有這樣的網路設置:

const config: HardhatUserConfig = {
   defaultNetwork: 'hardhat',
   networks: {
       mainnet_fork: {
           chainId: 1,
           forking: {
               url: ALCHEMY_MAINNET_RPC_URL,
           }
       },

嘗試將此添加到 myhardhat.config.ts時,我不斷收到以下錯誤:

Error HH8: There's one or more errors in your config file:

 * Invalid value undefined for HardhatConfig.networks.mainnet_fork.url - Expected a value of type string.
 
To learn more about Hardhat's configuration, please go to https://hardhat.org/config/

我嘗試了一些不同的方法,例如:

const ALCHEMY_MAINNET_RPC_URL = process.env.ALCHEMY_MAINNET_RPC_URL
const ALCHEMY_MAINNET_RPC_URL = process.env.ALCHEMY_MAINNET_RPC_URL!

但後來我得到:

Type 'undefined' is not assignable to type 'string'.

或者同樣的錯誤。

有什麼想法嗎?

它不是在抱怨forking. 您需要一個安全帽環境的 URL 才能在其上執行:

const config: HardhatUserConfig = {
   defaultNetwork: 'hardhat',
   networks: {
       mainnet_fork: {
           url: 'http://127.0.0.1:8545'
           chainId: 1,
           forking: {
               url: ALCHEMY_MAINNET_RPC_URL,
           }
       },

引用自:https://ethereum.stackexchange.com/questions/112942