部署智能合约时遭遇TypeError: Invalid URL错误求助
问题解决:Hardhat部署到Rinkeby时出现Invalid URL错误
错误根源
执行命令 npx hardhat run scripts/deploy.js --network rinkeby 时触发的TypeError: Invalid URL,是因为Hardhat配置文件中Rinkeby网络的url字段配置错误——你把节点服务(如Alchemy/Infura)的API密钥直接填成了url的值,而不是完整的节点访问URL。错误栈里的input: 'gGu01voSv52VJ6Ps9hYdffxEdgmCh-_BB'就是你错误填入的API密钥。
修复步骤
- 打开项目下的配置文件:
C:\Users\hp\twitter_clone\server\hardhat.config.js(如果是TypeScript项目则是hardhat.config.ts) - 定位到
networks区块里的rinkeby配置项,修正url字段:- 若使用Alchemy,完整URL格式为
https://eth-rinkeby.alchemyapi.io/v2/你的API密钥 - 若使用Infura,完整URL格式为
https://rinkeby.infura.io/v3/你的项目ID
- 若使用Alchemy,完整URL格式为
- 正确的配置示例:
module.exports = { solidity: "0.8.9", // 根据你的合约版本调整 networks: { rinkeby: { url: "https://eth-rinkeby.alchemyapi.io/v2/gGu01voSv52VJ6Ps9hYdffxEdgmCh-_BB", accounts: ["你的钱包私钥字符串"] } } };
- 保存配置后,重新执行部署命令即可。
关于npm警告的说明
你看到的npm警告:全局参数--global、--local已废弃,请使用--location=global替代属于npm版本兼容提示,不影响合约部署,可忽略;若要消除警告,更新npm到最新版本即可。
内容的提问来源于stack exchange,提问作者Sadaf Sagheer
相关产品推荐
相关产品推荐

