Ethereum “Web3ProviderEngine不支持同步请求”

Ethereum “Web3ProviderEngine不支持同步请求”,ethereum,solidity,web3,truffle,Ethereum,Solidity,Web3,Truffle,我想用provider配置我的truffle-config.js。当我运行命令truffle migrate-network ropsten时,出现了标题显示的错误 错误:Web3ProviderEngine不支持同步请求 错误的详细信息告诉了我们 在Object.run C:\Users\Bruce\AppData\Roaming\npm\node\u modules\truffle\build\webpack:\packages\truffle migrate\index.js:92:1 我

我想用provider配置我的truffle-config.js。当我运行命令truffle migrate-network ropsten时,出现了标题显示的错误

错误:Web3ProviderEngine不支持同步请求

错误的详细信息告诉了我们

在Object.run C:\Users\Bruce\AppData\Roaming\npm\node\u modules\truffle\build\webpack:\packages\truffle migrate\index.js:92:1

我对此一无所知。我在找文件 C:\Users\Bruce\AppData\Roaming\npm\node\u modules\truffle\build\webpack:\packages\truffle migrate\index.js:92:1,但我找不到build/下的路径webpack。有什么不对劲吗?我用global安装了truffle,它用默认的networkganache运行良好

罗普斯滕:{ 提供商:=>新的HDWalletProvider 私钥。拆分“,”, `https://ropsten.infura.io/v3/${process.env.INFURA\u API\u KEY}` , 网络id:3,//Ropsten的id,mainnet是1 gas:5500000,//Ropsten的块限制低于mainnet 加斯普里斯:2500000000,//2.5 gwei 确认:2,//个在部署之间等待的确认。默认值:0 timeoutBlocks:200,部署超时前的块数最小值/默认值:50 skipDryRun:true//迁移前跳过干运行?对于公共网络,默认值为false }, My HDWalletProvider依赖项版本:

依赖项:{ 柴:^4.2.0, 按照承诺:^7.1.1, dotenv:^8.1.0, eslint:^6.4.0, openzeppelin坚固性:^2.3.0, truffle hdwallet提供程序:^1.0.17, truffle hdwallet提供程序私钥:^0.3.0, web3:^1.2.1 }, 以及迁移:

1_initial_migration.js

常量迁移=artifacts.requireMigrations; module.exports=函数部署器{ 部署迁移; }; 2_deploy_contract.js

常量标记=artifacts.requireTokenInstance; const DeleToken=artifacts.requiredelegatoken module.exports=异步函数部署器{ deployer.deployToken; deployer.deployDeleToken; };
它无法成功编译。但是我使用默认的网络和ganache是可以的

您仍在使用已弃用的旧存储库

你应该改用块菌monorepo

npm install @truffle/hdwallet-provider
替换

const HDWalletProvider = require("@truffle/hdwallet-provider");

此外,您不需要使用truffle hdwallet provider privkey

您使用的hdwallet provider是什么版本的?你能显示你的迁移文件吗?我已经为这个问题添加了一些细节。非常感谢。伟大的每次我部署合约时都必须部署Migrations.sol合约吗?您可以阅读更多关于迁移工作原理的信息