使用EthersJS获取区块号时遇'AlchemyProvider未定义'错误求助
问题:ethers.providers.AlchemyProvider 未定义报错
错误详情
const provider = new ethers.providers.AlchemyProvider( ^ TypeError: Cannot read properties of undefined (reading 'AlchemyProvider') at Object.<anonymous> (D:\BlockChain\Ether JS\readBlockchain.js:5:39) at Module._compile (node:internal/modules/cjs/loader:1105:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10) at Module.load (node:internal/modules/cjs/loader:981:32) at Function.Module._load (node:internal/modules/cjs/loader:822:12) at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12) at node:internal/main/run_main_module:17:47
初始代码
const { ethers } = require("ethers"); require("dotenv").config(); const network = "mainnet"; const provider = new ethers.providers.AlchemyProvider( network, process.env.ALCHEMY_API_KEY ); const queryBlockchain = async () => { const blockNumber = await provider.getBlockNumber(); console.log(blockNumber); }; queryBlockchain();
问题原因
当前使用的ethers版本中,AlchemyProvider并未挂载在ethers.providers对象下,而是单独封装在@ethersproject/providers包内,直接从ethers根对象访问会触发属性未定义的错误。
修复后的代码
直接从@ethersproject/providers包中导入AlchemyProvider即可正常运行:
const { AlchemyProvider } = require("@ethersproject/providers"); require("dotenv").config(); const network = "mainnet"; const provider = new AlchemyProvider(network, process.env.ALCHEMY_API_KEY); const queryBlockchain = async () => { const blockNumber = await provider.getBlockNumber(); console.log(blockNumber); }; queryBlockchain();
内容的提问来源于stack exchange,提问作者Asir Shahriar Roudra
相关产品推荐
相关产品推荐

